账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js中sort方法无法达到预期效果
    40
    0

    我想把下面数组按时间排序后展示出来,使用sort方法始终无法达到期望效果,不知原因为何?求解答

    let arr = [{
        "applyId": "1909101016056138768202215",
        "createTime": "2019-09-10 10:16:02",
        "status": 0,
        "userName": "李某某"
            }, {
        "applyId": "1909101027225522012190631",
        "createTime": "2019-09-10 10:07:19",
        "status": 1,
        "userName": "李某某"
            }, {
        "applyId": "1909101027225562448906248",
        "createTime": "2019-09-10 10:27:19",
        "status": 3,
        "userName": "李某某"
            }]
    
    function compare(p) { //这是比较函数
        return function (m, n) {
            var a = new Date(m[p]);
            var b = new Date(n[p]);
            return a > b;
        }
    }
    arr.sort(compare("createTime"))
    console.log(arr)
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 杀戮之心 普通会员 1楼

      sort()方法在JavaScript中用于对数组进行排序。但是,它只能对数值类型的数组进行排序,对于字符串类型的数组,它会抛出一个错误。如果你需要对字符串数组进行排序,你需要先将其转换为数值数组,然后再使用sort()方法。

      例如,如果你有一个包含字符串的数组,你可以先使用map()方法将其转换为数值数组:

      javascript let arr = ['abc', 'def', 'ghi']; arr = arr.map(function(str) { return parseInt(str); });

      然后,你可以使用sort()方法对其进行排序:

      javascript arr.sort(function(a, b) { return a - b; });

      这样,arr就会按照升序排序。

      如果你需要对包含字符串的数组进行降序排序,你可以将一个负数作为比较函数:

      javascript let arr = ['abc', 'def', 'ghi']; arr = arr.map(function(str) { return parseInt(str); }); arr.sort(function(a, b) { return b - a; });

      这样,arr就会按照降序排序。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部