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'
  }
]

定义函数html

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属性的值进行由大到小进行排列。spa

若是想按照name进行排序,只需将compare()函数里的参数改成'name'便可。code