使用数组作为值对javascript对象进行排序

时间:2014-08-27 14:04:36

标签: javascript arrays sorting object

我有一个格式为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但未能将其应用于我的情况。任何帮助将不胜感激。

1 个答案:

答案 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]; 
});