如何提取嵌套数组的title字段并重命名后合并到目标对象数组?
解决数组对象合并问题
你的核心需求是将array1中对应位置的title字段重命名为new_title_name后,合并到array的每个对象中。先分析你现有代码的问题:
- 使用
array.push()会直接在数组末尾新增一个对象,而非将字段合并到array已有的两个对象里,导致结构不符合预期。 array1的每一项是嵌套数组(比如[{title: 'director', ...}]),直接访问item.title会得到undefined,需要先取出数组内部的对象再获取title。
正确实现代码
const array = [{ name: 'bob'},{ name: 'don' }]; const array1 = [[{ title: 'director', dob: 'xxx'}] ,[{ title: 'manager', dob: 'xxx'}]]; // 合并两个数组对应位置的对象 const mergedArray = array.map((person, index) => { // 从array1对应索引的嵌套数组中提取title const jobTitle = array1[index]?.[0]?.title; // 合并原对象和新字段 return { ...person, new_title_name: jobTitle }; }); console.log(mergedArray);
代码说明
array.map()遍历array的每个对象,同时获取当前索引index,用来匹配array1中对应位置的数据。- 用
?.可选链操作符处理边界情况:如果array1的长度小于array,或者某个位置的嵌套数组为空时,不会抛出错误,而是返回undefined。 - 使用扩展运算符
...person保留原对象的所有属性,再新增new_title_name字段,避免覆盖原数据。
输出结果
[ { name: 'bob', new_title_name: 'director' }, { name: 'don', new_title_name: 'manager' } ]
内容的提问来源于stack exchange,提问作者user686483
相关产品推荐
相关产品推荐

