JavaScript中如何按字符串属性值对对象数组进行排序?

JavaScript中如何按字符串属性值对对象数组进行排序?这里有一个JavaScript对象数组:

var objects = [
    {name: "abc", age: 78},
    {name: "ptd", age: 12},
    {name: "hts", age: 10},
    {name: "sht", age: 13}
];

能不能根据objects的name属性对该JS数组进行排序?平时用的数组排序都是数值类型或者字符串类型,对象类型的数组排序可行吗?是否需要向对象添加toString()方法?

 

很简单,你只需要在比较数组的时候传入一个比较函数就行了,例如:

// 数组比较函数
function compare(a, b){
    if(a.name > b.name)
        return 1;
    else if(a.name < b.name)
        return -1;
    else
        return 0;
}

// 调用数组排序函数
objects.sort(compare);
console.log(objects);

或者使用更简单的方式:箭头函数和三目元算符:

objects.sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0)); 

获取更多内容JavaScript开发和实战教程:http://www.srcmini.com/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值