如何在JavaScript中按日期排序JSON数据?



我正在制作一个显示艺术品的网站,该艺术品存储在Firebase实时数据库上。但是我希望它能按日期格式化和排序。

我已经尝试使用数组。排序方法,但我的数据不在数组中。

<artwork_id>{
artworkCompletionDate: "12-12-1212",
artworkDescription: {
"shortDesc": "",
"longDesc": ""
},
artworkName: "",
//etc...
},
<artwork_id_2>{...}

这是JSON吗?在你的例子中,它看起来像一个普通的JS对象。无论如何,当你有一个包含许多对象的JS对象时,你可以用以下代码将其转换为对象数组:

// Assume that the JSON data is stored in a variable called `artworkData`
// Convert the JSON data into an array of objects
const artworkArray = Object.keys(artworkData).map((id) => {
return {
id: id,
completionDate: new Date(artworkData[id].artworkCompletionDate),
description: artworkData[id].artworkDescription,
name: artworkData[id].artworkName
};
});

然后可以使用sort()方法对其排序。但请注意,sort方法按字母顺序排序,它不会正确排序数字。要使用sort方法对数字进行排序,可以使用以下技巧artworkArray.sort((a, b) => a.completionDate - b.completionDate);

有关使用sort方法按数字排序的更多信息,请参见JavaScript Array sort()和JavaScript Sorting Arrays in w3schools。

最新更新