Dav*_*ing 0 javascript arrays sorting
对此进行排序的最佳方法是什么:
{
abc: {
string: 'lorem',
date: 2
},
enc: {
string: 'ipsum',
date: 1
}
}
Run Code Online (Sandbox Code Playgroud)
进入这个:
[{
id: 'enc',
string: 'ipsum',
date: 1
},
{
id: 'abc',
string: 'lorem',
date: 2
}]
Run Code Online (Sandbox Code Playgroud)
我需要一个按日期(数字)排序的数组和一个平面对象。
首先,您需要将原始对象转换为您想要的格式的数组:
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 });
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用sort带有自定义比较器的数组方法按日期字段进行排序:
arr.sort(function(obj1, obj2) {
return obj1.date - obj2.date;
});
Run Code Online (Sandbox Code Playgroud)