我有以下对象:
var obj = { 2017-05-28: 76.16108625212159, 2017-02-12: 70.32183347555772, 2017-05-21: 74.21070693205216, 2017-04-23: 78.49819059107358, 2017-03-05: 73.36286201022146, 2017-04-02: 79.07588060050237, 2017-01-29: 79.07021235890568, 2017-03-26: 74.79360018220122, 2017-01-22: 71.80166785183269, 2017-04-09: 72.68569443640364 };
我想按日期排序,从一月开始,但我不知道该怎么做。
你怎么看,用JS可以吗?
提前致谢
最佳答案
键的顺序在一个对象中是不保证的。您可以将您的数据结构转换为排序数组,如下所示,并根据您的需要遍历该数组:
var obj = {
"2017-05-28": 76.16108625212159,
"2017-02-12": 70.32183347555772,
"2017-05-21": 74.21070693205216,
"2017-04-23": 78.49819059107358,
"2017-03-05": 73.36286201022146,
"2017-04-02": 79.07588060050237,
"2017-01-29": 79.07021235890568,
"2017-03-26": 74.79360018220122,
"2017-01-22": 71.80166785183269,
"2017-04-09": 72.68569443640364
};
var sortedArray = Object.keys(obj).sort().map(function(key) {
return {
date: key,
value: obj[key]
}
});
console.log(sortedArray);
/**Outputs:
[
{
"date": "2017-01-22",
"value": 71.80166785183269
},
{
"date": "2017-01-29",
"value": 79.07021235890568
},
{
"date": "2017-02-12",
"value": 70.32183347555772
},
{
"date": "2017-03-05",
"value": 73.36286201022146
},
{
"date": "2017-03-26",
"value": 74.79360018220122
},
{
"date": "2017-04-02",
"value": 79.07588060050237
},
{
"date": "2017-04-09",
"value": 72.68569443640364
},
{
"date": "2017-04-23",
"value": 78.49819059107358
},
{
"date": "2017-05-21",
"value": 74.21070693205216
},
{
"date": "2017-05-28",
"value": 76.16108625212159
}
]
**/
关于javascript - 如何在 Javascript 的键中按日期对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44801263/