本文介绍如何在 JavaScript 中对包含对象的数组进行排序。通过示例展示了直接使用箭头函数按数值属性排序,以及封装通用比较函数以支持指定属性和升降序排列的方法,供开发参考。
JavaScript 对象数组排序实现
本文主要讲解在 JavaScript 中依据对象数组的特定属性进行排序的代码实现。文中提供了详细的示例代码,对学习和实际应用具有参考价值。
具体实现代码如下所示:
var arr = [
{name:'a',age:9},
{name:'b',age:12},
{name:'c',age:8}
];
arr.sort((a,b)=>{
return a.age - b.age
});
function compare(property){
return function(a,b){
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
console.log(arr.sort(compare('age')))
* 使用例子:newArray.sort(sortBy('number',false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序
* @param attr 排序的属性 如number属性
* @param rev true表示升序排列,false降序排序
* */
sortBy: function(attr,rev){
//第二个参数没有传递 默认升序排列
if(rev == undefined){
rev = 1;
}else{
rev = (rev) ? 1 : -1;
}
return function(a,b){
a = a[attr];
b = b[attr];
if(a < b){
return rev * -1;
}
if(a > b){
return rev * 1;
}
return 0;
}
}
以上即为本文分享的全部内容,希望能为各位的学习或工作提供帮助,欢迎继续支持本站。