sort根据数组对象中某一个个属性进行排序

let arrA = [

    {name:'Tom',age:11},

    {name:'jack',age:19},

    {name:'karry',age:9}

]

function sortBy(name){

    return function(object1,object2){
            var val1 = object1[name]

                var val2 = object2[name]

                if(val1 < val2){

                    return -1

                }

                else if(val1 > val2){

                    return 1

                } else{

                    return 0

                }

            }

        }

console.log(arrA.sort(sortBy('age')));  //[{name:'karry',age:9},{name:'Tom',age:11},{name:'jack',age:19}]

// 本文章仅用于分享,来源网上素材整理,主要用于日常工作常见总结,如有侵权,请联系删除!!!

数组对象按某一属性排序可以使用以下几种方法: ### 使用 `sort` 方法自定义排序函数 定义一个函数,该函数接收一个属性名作为参数,并返回一个比较函数。在比较函数中,通过传入的属性名获取对象属性值进行比较。以下是代码示例: ```javascript var list = [ { id: 23, number: 12 }, { id: 3, number: 3 }, { id: 13, number: 22 }, { id: 5, number: 30 }, { id: 1, number: 8 } ]; function sortord(property) { return function (a, b) { var value1 = a[property]; var value2 = b[property]; return value1 - value2; // 正序 // return value2 - value1; // 倒序 }; } console.log(list.sort(sortord("number")), '排序结果'); ``` 上述代码中,`sortord` 函数接收一个属性名作为参数,返回的比较函数根据属性名获取对象属性值进行比较,实现正序或倒序排序 [^3]。 ### 直接在 `sort` 方法中定义比较函数 可以直接在 `sort` 方法中定义比较函数,根据对象的特定属性进行排序。示例如下: ```javascript var list = [ { name: '张三', age: 16 }, { name: '李四', age: 17 } ]; list.sort(function (a, b) { return b.age - a.age; // 降序 // return a.age - b.age; // 升序 }); ``` 这里,`sort` 方法中的比较函数根据 `age` 属性数组对象进行降序排序 [^4]。 ### 定义通用的比较函数 定义一个通用的比较函数,接收属性名作为参数,方便对不同属性进行排序。示例如下: ```javascript var newArray = [ { name: "aaa", value: 0 }, { name: "ddd", value: 3 }, { name: "bbb", value: 1 }, { name: "eee", value: 4 }, { name: "ccc", value: 2 } ]; function compare(property) { return function (a, b) { var value1 = a[property]; var value2 = b[property]; return value1 - value2; }; } console.log(newArray.sort(compare("value"))); ``` 在这个例子中,`compare` 函数接收属性名 `value` 作为参数,返回的比较函数根据 `value` 属性对 `newArray` 数组进行排序 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值