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

如何用JavaScript将两个数组转换为对象(数组分别作为键与值)

将两个数组转为键值对对象的JavaScript实现

当然可以实现,这里有几种实用的方案:

1. 使用Object.fromEntries(ES2019+)

这是最简洁的方式,Object.fromEntries能直接将键值对数组转为对象,我们可以通过map把两个数组的对应元素组合成键值对:

const keys = ['J', 'o', 'h', 'a', 'n'];
const values = [1, 1, 1, 2, 1];

const result = Object.fromEntries(keys.map((key, idx) => [key, values[idx]]));
console.log(result); // 输出: { "J": 1, "o": 1, "h": 1, "a": 2, "n": 1 }

2. 使用reduce(兼容性更广)

如果需要兼容ES2019之前的环境,reduce是更稳妥的选择,它通过迭代逐步构建目标对象:

const keys = ['J', 'o', 'h', 'a', 'n'];
const values = [1, 1, 1, 2, 1];

const result = keys.reduce((acc, key, idx) => {
  acc[key] = values[idx];
  return acc;
}, {});
console.log(result);

3. 使用forEach(直观易懂)

逻辑最直白的方式,通过遍历键数组,逐个给对象赋值:

const keys = ['J', 'o', 'h', 'a', 'n'];
const values = [1, 1, 1, 2, 1];
const result = {};

keys.forEach((key, idx) => {
  result[key] = values[idx];
});
console.log(result);

注意事项

  • 确保两个数组长度一致,否则:
    • 若键数组更长,超出值数组长度的键对应的值会是undefined
    • 若值数组更长,超出键数组长度的值会被忽略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:43:10