gpt4 book ai didi

javascript - 如何按时间戳对数组进行排序?

转载 作者:行者123 更新时间:2023-11-28 14:15:28 25 4
gpt4 key购买 nike

我正在尝试按时间戳值对这个数组进行排序。我想按升序对它们进行排序,如果其中任何一个具有不确定的属性,请将其放在最后。我目前遇到错误无法读取未定义的属性“first_release_date”。怎么解决这个问题?

var array = 
[
{
"id": 1969,
"cover": {
"id": 1960,
"url": "image.jpg"
},
"first_release_date": 1083542400,
"name": "Item 1"
},
{
"id": 113242,
"name": "Item 2"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 3"
},
{
"id": 1969,
"cover": {
"id": 1960,
"url": "image.jpg"
},
"name": "Item 4"
},
{
"id": 9245,
"first_release_date": 1292976000,
"name": "Item 5"
}
];

Object.keys(array).forEach((key) => {
console.log(`Before: ${array[key].name}`)
});

array.sort((a,b) => a.array.first_release_date > b.array.first_release_date);

Object.keys(array).forEach((key) => {
console.log(`After: ${array[key].name}`)
});

最佳答案

你就快到了。只需在没有日期时提供默认值。另外,排序要求您返回一个数字,当您返回一个 bool 值时,该 bool 值将被转换为 0 或 1。这将破坏您想要返回负数的情况的排序。

var array = 
[
{
"id": 1969,
"cover": {
"id": 1960,
"url": "image.jpg"
},
"first_release_date": 1083542400,
"name": "Item 1"
},
{
"id": 113242,
"name": "Item 2"
},
{
"id": 25076,
"first_release_date": 1540512000,
"name": "Item 3"
},
{
"id": 1969,
"cover": {
"id": 1960,
"url": "image.jpg"
},
"name": "Item 4"
},
{
"id": 9245,
"first_release_date": 1292976000,
"name": "Item 5"
}
];

Object.values(array).forEach((val) => {
var d = new Date(val.first_release_date*1000).getFullYear();
console.log(`Before: ${ val.name} ${d }`)
});

array.sort((a,b) => ( a.first_release_date || Number.POSITIVE_INFINITY ) - ( b.first_release_date || Number.POSITIVE_INFINITY ));

Object.values(array).forEach((val) => {
var d = new Date(val.first_release_date*1000).getFullYear();
console.log(`After: ${ val.name} ${d }`)
});

var reverse = JSON.parse( JSON.stringify( array ));

reverse.sort((a,b) => ( b.first_release_date || Number.NEGATIVE_INFINITY ) - ( a.first_release_date || Number.NEGATIVE_INFINITY ));

console.log( reverse );

关于javascript - 如何按时间戳对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57695827/

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