问题原因在于.sort方法按照Unicode值排序,而不是按照实际大小排列属性值。解决该问题的方法是使用.sort方法的回调函数,该回调函数接受两个参数,表示将要比较的元素。此回调函数应返回一个数字,指示元素的顺序。代码示例如下:
let objs = [ {name: 'John', age: 23}, {name: 'Adam', age: 32}, {name: 'Kate', age: 18} ];
objs.sort((a, b) => { return a.age - b.age; });
console.log(objs);
// Output: [{name: 'Kate', age: 18}, {name: 'John', age: 23}, {name: 'Adam', age: 32}]
上一篇:按对象属性进行动态数组过滤
下一篇:按对象属性值从列表中选择对象?