吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1253|回复: 6
收起左侧

[求助] JS对对象进行排序的问题

  [复制链接]
cqwcns 发表于 2020-7-31 20:06
JS,有个数组对象,结构大概是这样的,如果我要根据currtentTime对对象进行排序(降序),怎样写比较好。
我尝试用sort() ,但没有成功。请指教,谢谢


[JavaScript] 纯文本查看 复制代码
    [{
      content: '内容内容',
      currtentTime: 1596184337513
    }, {
      content: '内容内容',
      currtentTime: 1596994339913
    }, {
      content: '内容内容',
      currtentTime: 1596884377513
    }]

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
kernel2 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1.shui 发表于 2020-7-31 20:31
sort()和reverse()
fortytwo 发表于 2020-7-31 20:46
[JavaScript] 纯文本查看 复制代码
a = [{
    content: '内容内容',
    currtentTime: 1
}, {
    content: '内容内容',
    currtentTime: 3
}, {
    content: '内容内容',
    currtentTime: 2
}]
function compare(p){
    return function(m,n){
        var a = m[p]
        var b = n[p]
        return a-b
    }
}
console.log(a.sort(compare('currtentTime')));

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
kesai + 1 + 1 热心回复!

查看全部评分

1085271662 发表于 2020-7-31 21:33
leslie初见 发表于 2020-7-31 21:41
[JavaScript] 纯文本查看 复制代码
/**根据对象数组中的某个属性值进行排序
* eg: newArr.sort(objSort('number',false))
* [url=home.php?mod=space&uid=952169]@Param[/url] attr 排序的属性
* @param rev true表示升序排列,false降序排序
* */
function objSort(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;
    };
}

var newArr = [{
  content: '内容内容',
  currtentTime: 1596184337513
}, {
  content: '内容内容',
  currtentTime: 1596994339913
}, {
  content: '内容内容',
  currtentTime: 1596884377513
}];

console.log( newArr.sort(objSort('currtentTime',false)) );

arklearn 发表于 2020-7-31 23:25
leslie初见 发表于 2020-7-31 21:41
[mw_shl_code=javascript,true]
/**根据对象数组中的某个属性值进行排序
* eg: newArr.sort(objSort('num ...

学习了,平时用的是框架。
1085271662 发表于 2020-8-3 14:56
[JavaScript] 纯文本查看 复制代码
let arr = [{ x: 2 }, { x: 1 }, { x: 4 }, { x: 3 }];
console.log(arr.sort((a, b) => a.x - b.x));
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 13:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表