像数据结构那样按顺序排列的Orderby字典

时间:2018-07-19 21:27:24

标签: javascript angular typescript angular5

我正在尝试根据该值对对象数据结构进行排序。 {苹果:1,梨:85,橙色:24,蓝莓:18}

我想按DESC顺序按值重新排序。我认为没有办法做到这一点,即使该对象包装在一个Array中,但也想检查一下。

我的另一个思考过程是将键值对分成2个单独的数组。然后循环值数组,搜索最大谷值并在该点捕获索引,并且该特定索引应与键数组匹配。然后,我可以将键/值对移动到第三个/单独的数组中,并按最大值保持顺序。然后根据捕获的索引号,从键和值数组中弹出。

如果有更好的方法,请随时分享?

1 个答案:

答案 0 :(得分:1)

Object的键未排序,因此仅使用对象就无法实现所需的功能。

但是,如果使用数组,则可以使用Array.sort()

const myArray = [{apple: 1}, {pear: 85}, {orange: 24}, {blueberry: 18}]
myArray.sort((e1, e2) => Object.values(e2)[0] - Object.values(e1)[0])
console.log(myArray)