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

如何将对象数组指定字段值作为键映射另一字段值生成新对象

对象数组转键值映射对象实现

输入数据

原始待处理数组(原数据存在语法笔误z",已修正为合法结构):

[ 
  {
    "id": 0,
    "name": "Active",
    "value": "Y"
  },
  {
    "id": 1,
    "name": "controls",
    "value": "N"  
  }
]

目标输出

需要生成的单对象结构:

{
  "Active": "Y",
  "controls": "N"
}

实现思路

遍历数组每一项,取每项的name字段值作为对象键,对应的value字段值作为键值,逐步填充到空对象中即可。

常用实现代码

  • reduce 写法(最简洁)
    适合函数式编程场景,代码最精简:
    const list = [/* 原始输入数组 */]
    const res = list.reduce((map, item) => {
      map[item.name] = item.value
      return map
    }, {})
    
  • 普通for循环(兼容性最佳)
    不依赖ES5+新增API,可在所有JS运行环境直接使用:
    const list = [/* 原始输入数组 */]
    const res = {}
    for (var i = 0; i < list.length; i++) {
      res[list[i].name] = list[i].value
    }
    
  • for...of 写法(可读性最好)
    现代JS环境推荐写法,逻辑直白易维护:
    const list = [/* 原始输入数组 */]
    const res = {}
    for (const item of list) {
      res[item.name] = item.value
    }
    

注意:如果数组中存在多个项的name值重复,后遍历到的项会覆盖前面同键的值,这是JS对象键唯一的固有特性。如果需要保留所有重复项的值,可以把对应键的存储结构改为数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:09:23