gpt4 book ai didi

javascript - 按值对 Javascript 对象进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 04:55:25 25 4
gpt4 key购买 nike

在我的 Javascript 应用程序中,我有一个对象,我需要能够通过内部对象中的值对数组进行排序。

例如:

{
a : {
timestamp: xxxxxx
other : yyyyyy
},
b : {
timestamp: xxxxxx
other : yyyyyy
},
c : {
timestamp: xxxxxx
other : yyyyyy
}
}

我需要做的是管理这个数据集,并根据每个内部对象的时间戳对数组重新排序。

我可以通过哪些方式来做到这一点?

更新:

我最初的想法是做这样的事情:

{
a : {},
b : {},
c : {},
_ : [
c, a, b //Key's Only
]
}

然后根据这些值重新索引对象,这将理清如何索引对象,但是当我插入一个新元素时,我还必须重新生成 _ 索引关系,这似乎需要付出很多努力。

最佳答案

您可以将数据复制到数组中,然后对其进行排序:

var data = {
a : {
timestamp: 11111,
other : "xxx"
},
b : {
timestamp: 22222,
other : "yyy"
},
c : {
timestamp: 33333,
other : "zzz"
}
};

var output = [];

// copy items to an array so they can be sorted
for (var key in data) {
data[key].key = key; // save key so you can access it from the array (will modify original data)
output.push(data[key]);
}

output.sort(function(a,b) {
return(a.timestamp - b.timestamp);
});

将其生成为输出(请注意,我将原始键添加到对象中,因此可以从数组中访问它):

[{"timestamp":11111,"other":"xxx","key":"a"},
{"timestamp":22222,"other":"yyy","key":"b"},
{"timestamp":33333,"other":"zzz","key":"c"}]

你可以在这里看到这个工作:http://jsfiddle.net/jfriend00/hXpkP/

关于javascript - 按值对 Javascript 对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com