javascript - 通过参数 JS 对嵌套对象进行排序
问题描述
有没有办法通过其中一个参数对嵌套对象进行排序?
例如,如果我有这样的数据结构:
var someObject = {
'part1328': {
'time': 1543203609575,
},
'part38321': {
'time': 1543203738716,
},
'part1328': {
'time': 1543203746046,
},
'part38338': {
'time': 1543203752264,
}
};
而且我不知道我会提前准备多少部分,也不知道它们的名字是什么。有没有办法可以按时间对零件进行排序并获取最新和最旧的零件?
解决方案
您可以使用Object.entries
以列表形式获取一组键/值对。然后,您可以对该列表进行排序并按您喜欢的方式排列数据:
var someObject = {
'part1328': {
'time': 1543203609575,
},
'part38321': {
'time': 1543203738716,
},
'part1328': {
'time': 1543203746046,
},
'part38338': {
'time': 1543203752264,
}
};
let arr = Object.entries(someObject).sort((a, b) => a.time - b.time)
console.log(arr)
// from here you can manage the data any way you want.
// for example, an array of simple objects:
let merged = arr.map(([key, value]) => ({id: key, ...value}) )
console.log(merged)
推荐阅读
- python-3.x - 当对象很大时 pool.map 冻结
- python - 使用 pandas 将列附加到列
- c# - 控制请求对象解构的选项
- swift - 具有类绑定约束的泛型类不能通过类绑定协议参数化
- python - 如何创建逻辑来在熊猫中进行值映射?
- python - 为什么我的熊猫数据框使用这么多内存?
- elixir - 在 Elixir 中,将测试文件与相关模块放在一起
- c# - Angular:无法通过 HttpResponse 返回自定义错误消息
- c# - 在分支之间转换时生成错误:您的项目未引用“.NETFramework,Version=v4.7.2”框架
- python - 抓取linkedin新闻提要