如何在JavaScript中对数组内对象按值升序排序得到目标输出
解决对象按值升序排序键的问题
嘿,我来帮你搞定这个需求!你需要把数组里的对象属性按照对应值的升序重新排列,下面是完整的可运行代码和解释:
完整代码示例
const arr = [{"DOA Qty":"0.000665921017598927382910198160","LOS%":"0","FID Valid EC By Part":"0.0041860443283016713761966","Interventions":"0"}]; // 对数组中的对象按值升序排序键 const sortedObj = Object.fromEntries( Object.entries(arr[0]).sort(([, valA], [, valB]) => { // 将字符串格式的数值转为数字进行比较 const numA = parseFloat(valA); const numB = parseFloat(valB); return numA - numB; }) ); const desiredarr = [sortedObj]; // 输出结果和你的目标一致 console.log(desiredarr);
步骤拆解
- 提取键值对数组:用
Object.entries(arr[0])把目标对象转换成[键, 值]组成的二维数组,这样我们就能对键值对进行排序操作。 - 按值排序:在
sort方法里,我们忽略键只取出值,把字符串形式的数值转为数字(parseFloat),然后通过numA - numB实现升序排序。 - 重构对象:用
Object.fromEntries()把排序后的键值对数组重新转换成对象。 - 放回数组:把排序后的对象放回数组,就得到了你想要的
desiredarr。
这个方案完美适配你给出的示例场景,所有值都是字符串类型的数字,转换和排序都不会有问题~
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

