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

JavaScript:为对象数组添加对应位置新属性的实现问题

解决对象数组对应添加另一数组元素作为属性的问题

你的问题出在直接将整个country数组赋值给了每个对象的country属性,导致每个对象的country都是完整数组,而不是对应位置的单个国家值。

map方法除了当前元素参数外,还提供了第二个参数——当前元素的索引值,利用这个索引就能匹配到country数组中对应位置的元素。

修正后的代码如下:

const mainArray = [{name: 'John', age: 30}, {name: 'Jane', age: 25}]
const country = ['Germany', 'Japan']

const res = mainArray.map((x, index) => {
    // 用扩展运算符复制原对象所有属性,再添加新属性
    return {
        ...x,
        country: country[index]
    }
})

代码说明:

  • (x, index):index是当前元素在mainArray中的位置(从0开始计数)
  • ...x:ES6扩展运算符,快速复制原对象的所有属性,无需手动逐个编写name: x.name这类代码
  • country: country[index]:通过索引取country数组中对应位置的国家值,实现两个数组元素的一一对应

执行后res的结果完全符合你的预期:

[{name: 'John', age: 30, country: 'Germany'}, {name: 'Jane', age: 25, country: 'Japan'}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:25:47