JS數組按特定規則排序

舉個例子,比如我一個題庫的列表想要按選擇題、判斷題、填空題、簡答題、應用題的順序排序。
每個題目是一個對象,它有個type屬性記錄了它的題型。然後各個題目對象組合成一個對象數組。當我插入新的題目後,將列表刷新按規則排序。

按規則排序的函數

 //按特定順序排序
    function compare(property) {
        return function (a, b) {
        	//排序規則
            var rule = ['選擇題','判斷題','填空題', '簡答題', '應用題'];
            return rule.indexOf(a[property]) - rule.indexOf(b[property]);
        }
    };

然後我們在對數組調用即可

data.sort(compare('type'));		//根據題目對象的type屬性進行排序

其實很簡單。更簡單常用的比如這樣

 //按特定順序排序
   function compare(property) {
        return function (a, b) {
            return a[property] - b[property];
        }
    };
data.sort(compare('username'));		//傳入對象的屬性,按屬性進行排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章