【发布时间】:2020-01-01 21:12:06
【问题描述】:
我正在尝试按时间戳值对 array 进行排序。我想按升序对它们进行排序,如果它们中的任何一个具有不确定的属性,请将其放在最后。我目前遇到错误无法读取未定义的属性“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}`)
});
【问题讨论】:
-
您当前的代码有什么问题?
-
sort需要一个数字返回值,而不是布尔值。阅读documentation。这是a.first_release_date - b.first_release_date。此外,没有array属性。为什么要在中间加.array?
标签: javascript jquery arrays sorting ecmascript-6