1. 程式人生 > >js對陣列或陣列物件進行排序

js對陣列或陣列物件進行排序

定義一個數組物件
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'即可。