要根据对象的某个属性排序,首先要理解sort()方法的原理
-
sort()会改变原数组
-
sort()在不传入参数时默认升序排列
-
若想自定义排序,如降序排列,按照对象某个属性排序等,就必须往sort()中传入一个回调函数作为参数
var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ]; //定义一个比较器 function compare(prop){ // 默认传入两个参数,即为数组中要比较的两项 return function(a,b){ var value1 = a[prop]; var value2 = b[prop]; // 通过返回值的正负来排序,返回值必须是数字类型 return value1 - value2; } } arr.sort(compare('age')) console.log(arr)
最后输出是按照年龄升序排列