JS sort方法基于数组对象属性值排序
作者:代码拾荒时间:2026-10-23 19:48:42浏览:469
本文介绍如何利用JavaScript的sort方法结合自定义比较函数,实现对包含对象的数组按指定属性值进行排序。通过封装比较逻辑,可灵活控制升序或降序排列,适用于前端数据处理场景。
按对象属性值排序的基本实现
sort函数接受比较函数作为参数,此处通过闭包接收属性名,其余用法与标准sort一致。
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
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;
}
}
本文内容旨在辅助学习,欢迎继续支持本站。
作者最新文章
JavaScript异步发送HTTP请求时怎么优雅地处理错误
2026-11-05 17:10:44
5款主流JS在线运行工具对比:CodePen、JSFiddle与StackBlitz怎么选
2026-11-05 17:04:04
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
