JavaScript中为现有对象数组添加关联数组元素的新键值对
给对象数组批量添加对应索引的新属性
你可以通过以下几种JavaScript方法实现需求,将reasons数组中对应索引的元素作为reason属性添加到对象数组的每个对象中:
方法1:使用Array.map()(推荐,不修改原数组)
该方法会生成新数组,原数组保持不变,适合需要保留原始数据的场景:
const reasons = ['a', 'b', 'c']; const originalArray = [ { id: 1, Data: 'yes', active: true }, { id: 2, Data: 'yes', active: false }, { id: 3, Data: 'data', active: false } ]; const resultArray = originalArray.map((item, index) => { return { ...item, // 展开原对象的所有属性 reason: reasons[index] // 添加新的reason属性 }; }); console.log(resultArray);
方法2:使用Array.forEach()(直接修改原数组)
如果不需要保留原数组,可以直接遍历修改每个对象:
const reasons = ['a', 'b', 'c']; const originalArray = [ { id: 1, Data: 'yes', active: true }, { id: 2, Data: 'yes', active: false }, { id: 3, Data: 'data', active: false } ]; originalArray.forEach((item, index) => { item.reason = reasons[index]; // 直接给原对象添加属性 }); console.log(originalArray);
额外提示
如果两个数组长度不一致,可添加默认值避免出现undefined:
const resultArray = originalArray.map((item, index) => { return { ...item, reason: reasons[index] || '无原因' // 当reasons对应索引无值时使用默认值 }; });
内容的提问来源于stack exchange,提问作者starlord
相关产品推荐
相关产品推荐

