gpt4 book ai didi

javascript - 内部内容排序

转载 作者:行者123 更新时间:2023-11-30 12:57:21 25 4
gpt4 key购买 nike

如何根据子对象的值对对象进行排序?

例子:

[
{
name: 'Jhon',
old: 20,
last_message: {
text: 'blah',
timestamp: 1378188846
}
},
{
name: 'Bill',
old: 45,
last_message: {
text: 'Hello, Jhon!',
timestamp: 1378188956
}
},
{
name: 'Steave',
old: 34,
last_message: {
text: 'Bye! ;)'
timestamp: 1378188952
}
}
]

应该是独立于最大 last_message.timestamp 的对象顺序。

怎么做?

最佳答案

排序时可以指定自定义比较函数

my_list.sort(function(a, b){return ...});

如果a小于b,你应该返回一个负数,如果a大于b<,你应该返回一个正数 或 0,如果它们是等价的。

顺便说一句,你真的应该传递一个函数,因为默认函数会将元素转换为字符串,然后比较字符串,这很少是你想要的,除非在数组只包含字符串的情况下。

不是开玩笑,例如,如果您有一个数字数组并对其调用 sort,您会对排序结果感到惊讶

[1, 2, 3, 30, 20, 10]

默认给出

[1, 10, 2, 20, 3, 30]

因为那个字符串转换。

在您的情况下,排序功能可能应该是

function(a, b) {
return a.last_message.timestamp - b.last_message.timestamp;
}

或相反,取决于您是希望最近的消息排在最前面还是最后

关于javascript - 内部内容排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18585961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com