我遇到了一个对象结构(现在)我想看看我是否可以尝试排序。我的对象现在看起来像这样 -
{
"type1" : {
"position": 3
},
"type2" : {
"position": 1
}
}
我想弄清楚的是,是否有办法重新排序(排序)对象键/值但嵌套位置。所以期望的结果将是
{
"type2" : {
"position": 1
},
"type1" : {
"position": 3
}
}
那么确定顺序的是对象中的position
值。我正在重构另一个项目,尝试在此列表中添加一些排序。我知道如果它是一个对象列表会更容易很多,但这需要我改变很多其他代码,所以我试图找出是否可以将对象结构保持为是(如果可能的话)。谢谢你的阅读!
答案 0 :(得分:1)
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);