按照数组中的对象属性进行比较排序
程序员文章站
2022-07-12 13:51:00
...
在对数组中的对象进行操作时,有些需求是按照数组中的对象的 某一项属性 进行排序,下面是一种方法,亲测好用,分享给大家:
<script>
var arry = [
{ value: 6, name: "张三", age: 23 },
{ value: 3, name: "李四", age: 34 },
{ value: 9, name: "王二", age: 13 },
];
function compare(property) {
//按照数组中的对象属性进行排序
return function (a, b) {
var val1 = a[property];
var val2 = b[property];
return val1 - val2;
};
}
//按照数组中的value属性进行比较排序
var res = arry.sort(compare("value"));
console.log(res);
console.log(arry); //会改变原数组
</script>
从结果可以看到,数组中的对象按照value的大小进行了排序,同时原数组也改变了;
<script>
var arry = [
{ value: 6, name: "张三", age: 23 },
{ value: 3, name: "李四", age: 34 },
{ value: 9, name: "王二", age: 13 },
];
function compare(property) {
//按照数组中的对象属性进行排序
return function (a, b) {
var val1 = a[property];
var val2 = b[property];
return val1 - val2;
};
}
// 按照数组中的age属性进行比较排序
var res = arry.sort(compare("age"));
console.log(res);
</script>
可以看到,这次是按照数组中对象的age属性进行的排序。
数组中对象排序方法还有很多,希望我可以和大家共同探讨。