javascript - 按参数 JS 排序嵌套对象

标签 javascript object

有没有办法根据其中一个参数对嵌套对象进行排序?

例如,如果我有这样的数据结构:

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)

关于javascript - 按参数 JS 排序嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53474476/

相关文章:

javascript - 使用 $.post 自动完成功能未按预期工作

javascript - 打字时转换为大写,有一些延迟

javascript - Node.js - console.log 不显示数组中的项目而是显示 [Object]

C++实例化在另一个没有指针的类构造函数中没有默认构造函数的对象

javascript - 如何访问 JSON 对象中的数组?

javascript - e.preventDefault(); 有多危险,是否可以用 keydown/mousedown tracking 代替?

javascript - react native : How to pass props to 'routeMapper' of 'Navigator.NavigationBar' ?

javascript - 从应用程序中打开智能电视浏览器

javascript - 如何访问嵌套的 JSON 数据

c++ - 在堆上实例化一个对象