有没有一种方法可以指定Object.values()结果的顺序

时间:2019-01-02 15:42:14

标签: javascript

我从API获得以下形状的商品:

data : {
    "56": { ... }, //item1
    "57": { ... }, //item2
    "58": { ... }, //item3
}

我想要一个看起来像这样的Object数组:

[
    { ... }, //item1 with key "56"
    { ... }, //item2 with key "57"
    { ... }  //item3 with key "58"
]

当然可以通过Object.values(data)获得。但是由于Javascript不能保证对象属性的顺序,因此我想找到一种使用属性键对结果进行排序并保证我将得到的对象数组顺序的方法。这可行吗?

编辑:如评论中所建议,我可以使用Object.keys(),对结果进行排序,然后使用它来构建我的数组,但是我想知道是否有更直接,更优雅的方法来实现这一目标。 / p>

1 个答案:

答案 0 :(得分:5)

您可以获取条目,对其进行排序并仅映射值。

data = Object
    .entries(object.data)
    .sort(([a], [b]) => a - b)
    .map(([, v]) => v)