javascript - 按键值对对象排序

标签 javascript sorting object

<分区>

我被一个对象结构所困(目前),我想看看我是否可以尝试对其进行排序。我的对象现在看起来像这样 -

{
  "type1" : { 
    "position": 3
  },
  "type2" : { 
     "position": 1
  }
}

我想弄清楚的是,是否有一种方法可以重新排序(排序)对象键/值但嵌套位置。所以期望的结果是

{
  "type2" : { 
     "position": 1
  },
  "type1" : { 
    "position": 3
  }
}

那么决定顺序的是对象中的 position 值。我正在重构另一个项目以尝试向该列表添加一些排序。我知道如果它是一个对象列表会容易,但这需要我更改很多其他代码所以我试图找出是否可以将对象结构保持为是(当然如果可能的话)。感谢阅读!

最佳答案

var a = {
  "type1" : { 
    "position": 3
  },
  "type2" : { 
     "position": 1
  }
};

var b = Object.assign(
    ...Object
    .keys(a)
    .sort((x, y) => a[x].position >= a[y].position)
    .map(k => ({ [k]: a[k] }))
);

console.log (b);

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

相关文章:

javascript - 有没有办法触发调用另一个模块中存在 "might"的方法?

javascript - 更改浏览器缩放级别

java - 使用 java.text.Collat​​or 并发排序时如何避免线程阻塞?

swift - 按日期排列字符串日期 ("yyyy-MM-dd HH:mm:ss.SSSSSS") 的数组

sorting - OpenCV轮廓轴排序

javascript - 将多个对象数组转换为单个数组,同时合并公共(public)键上的对象

javascript - AngularJS 将操作添加到 Controller

javascript - 在网站上使用 Surface Pro 触控笔

c++ - 如何使用 json11 库在 json 中添加子/嵌套元素?

arrays - MongoDB:更新数组中的数组