js中sort方法无法达到预期效果

发布于 2022-09-12 00:10:19 字数 722 浏览 17 评论 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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌逼全场 2022-09-19 00:10:20
return a > b ? -1 : 1;
冷血 2022-09-19 00:10:19

compare需要返回一个number类型。

  1. 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
  2. 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而> 且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
  3. 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
  4. compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文