You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:49:36