js對陣列或陣列物件進行排序
阿新 • • 發佈:2019-01-23
定義一個數組物件 var arr = [ { name: '名字4', time: '2018-07-07 12:00:00' }, { name: '名字3', time: '2018-07-05 15:35:00' }, { name: '名字2', time: '2018-07-05 14:20:00' }, { name: '名字1', time: '2018-07-05 14:15:00' } ]
定義函式
var compare = function (prop) { return function () { let obj1, obj2 var val1 = obj1[prop] var val2 = obj2[prop] if (val1 > val2) { return -1 } else if (val1 < val2) { return 1 } else { return 0 } } }
console.log(arr.sort(compare('time'))) 輸出:
[{ name: '名字1', time: '2018-07-05 14:15:00' }, { name: '名字2', time: '2018-07-05 14:20:00' } , { name: '名字3', time: '2018-07-05 15:35:00' }, { name: '名字4', time: '2018-07-07 12:00:00' } ]
這裡arr.sort(compare('time'))即為陣列按每一個元素的time屬性的值進行由大到小進行排列。
如果想按照name進行排序,只需將compare()函式裡的引數改為'name'即可。