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

JavaScript如何基于两个数组生成指定键值的对象数组?

问题原因说明

你原代码的问题在于,Object.assign({}, arr)会将数组类型的arr转换为以数字下标为键的对象,例如["Alex", 20]转换后得到{0: "Alex", 1: 20},不会自动关联a数组的自定义键名,所以不符合需求。

实现方案

方案1:reduce实现(兼容性最好)

遍历b数组的每一行数据,再通过reduce把a数组的键和当前行的对应值绑定成对象:

const result = b.map(item => 
  a.reduce((acc, key, idx) => {
    acc[key] = item[idx]
    return acc
  }, {})
)

方案2:Object.fromEntries实现(写法最简洁,ES2019+支持)

先把键和值拼成[键, 值]的配对数组,直接生成对象:

const result = b.map(item => 
  Object.fromEntries(a.map((key, idx) => [key, item[idx]]))
)

方案3:for循环实现

如果你习惯用基础for循环写法,也可以按以下逻辑实现:

const result = []
for (let i = 0; i < b.length; i++) {
  const currentItem = b[i]
  const obj = {}
  for (let j = 0; j < a.length; j++) {
    obj[a[j]] = currentItem[j]
  }
  result.push(obj)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:45:04