对此进行排序的最佳方式是什么:
{
abc: {
string: 'lorem',
date: 2
},
enc: {
string: 'ipsum',
date: 1
}
}
进入此:
[{
id: 'enc',
string: 'ipsum',
date: 1
},
{
id: 'abc',
string: 'lorem',
date: 2
}]
我需要一个按日期(数字)排序并带有平面对象的数组。
最佳答案
首先需要将原始对象转换成你想要的格式的数组:
var arr = [];
for (var key in obj)
if (obj.hasOwnProperty(key)) {
var o = obj[key];
arr.push({ id: key, string: o.string, date: o.date });
}
然后,您可以使用数组 sort
方法和自定义比较器来按日期字段排序:
arr.sort(function(obj1, obj2) {
return obj1.date - obj2.date;
});
关于javascript - 在javascript中对深层对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299116/