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

在Node.js中如何将数组对象转换为键值对对象?

把数组转成键为name、值为size的对象

假设你有如下数组数据:

[
{"name": "ford", "size": 220},
{"name": "chevy", "size": 230},
{"name": "jeep", "size": 240}
]

要转换成键为name字段值、值为size字段值的单个对象,下面是几种常用场景的实现方式:

JavaScript

方法1:用reduce(兼容性强)

这是数组处理的通用写法,几乎所有环境都支持:

const arr = [{"name": "ford", "size": 220},{"name": "chevy", "size": 230},{"name": "jeep", "size": 240}];
const result = arr.reduce((acc, curr) => {
  acc[curr.name] = curr.size;
  return acc;
}, {});

运行后result就是目标格式:{ ford: 220, chevy: 230, jeep: 240 }

方法2:用Object.fromEntries(ES2019+)

语法更简洁,适合现代JavaScript环境:

const arr = [{"name": "ford", "size": 220},{"name": "chevy", "size": 230},{"name": "jeep", "size": 240}];
const result = Object.fromEntries(arr.map(item => [item.name, item.size]));

Python

一行字典推导式就能搞定:

arr = [{"name": "ford", "size": 220}, {"name": "chevy", "size": 230}, {"name": "jeep", "size": 240}]
result = {item["name"]: item["size"] for item in arr}

输出结果:{'ford': 220, 'chevy': 230, 'jeep': 240}

SQL直接查询生成(如果从数据库取数时就想要这个结构)

不同数据库的函数语法有差异:

  • PostgreSQL:使用json_object_agg
SELECT json_object_agg(name, size) FROM sometable;

返回结果是JSON对象:{"ford":220,"chevy":230,"jeep":240}

  • MySQL 8.0+:使用json_objectagg
SELECT JSON_OBJECTAGG(name, size) FROM sometable;

内容的提问来源于stack exchange,提问作者Fattie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:12:43