我有一个格式为key:pair
的Javascript对象,其中pair
是一个包含2个时间戳值的数组。我想对这个对象进行排序,以便首先显示具有最小数字(最早时间)的元素。
以下是对象的示例:{"21_2":[1409158800,1409160000],"20_1":[1409148000,1409149200],"56_1":[1409149800,1409151600]}
所以在这种情况下,我希望最终排序的对象可以读取:
{"20_1":[1409148000,1409149200],"56_1":[1409149800,1409151600],"21_2":[1409158800,1409160000]}
显然sort()
函数会在这里为数组发挥作用,但是如何在对象中访问这些值呢?请注意,由于下划线,对象key
实际上不是整数。
我发现了这个:Sort Complex Array of Arrays by value within但未能将其应用于我的情况。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以像这样更改数据结构:
var myArray = [{
"id" : "21_2" // id or whatever these are
"timeStamps" : [1409158800,1409160000]
}, {
"id" : "20_1"
"timeStamps" : [1409148000,1409149200]
}];
然后你可以通过常规数组排序对它进行排序:
myArray.sort(function(a, b){
// however you want to compare them:
return a.timeStamps[0] - b.timeStamps[0];
});