繁体   English   中英

根据数值对对象数组进行排序

[英]Sort Array of Objects Based on Numeric Value

我有一个像这样的数组:

[
   { Orange: 5 },
   { Red: 575 },
   { Green: 6544 },
   { Blue: 1307 }
]

期望的结果是:

[
   { Green: 6544 },
   { Blue: 1307 },
   { Red: 575 },
   { Orange: 5 }
]

在查看堆栈溢出后,我一直在尝试使用排序运算符: myArray.sort((a, b) => a.distance - b.distance) 但是,我遇到的问题是关键不标准化。 我找到的所有示例都具有相同的键,但我正在尝试使用非标准键对数值进行排序。

通过上述数组进行映射时,我可以像这样访问密钥:

let ungroupedArr = [
   { Orange: 5 },
   { Red: 575 },
   { Green: 6544 },
   { Blue: 1307 }
]

ungroupedArr.map(element => {
   //this is the key
   Object.keys(element)[0]
})

我正在尝试使用上述地图样式逻辑获得更详细的排序解决方案(我可以访问数组中的每个元素。但是,我碰壁了,我不确定下一步该去哪里。

知道我将如何解决这个问题吗?

使用Array#sortObject#values

 const arr = [ { Orange: 5 }, { Red: 575 }, { Green: 6544 }, { Blue: 1307 } ]; const sorted = arr.sort((a, b) => Object.values(b)[0] - Object.values(a)[0]); console.log(sorted);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM