如何在JS数组中为所有子项添加父级键值对?
给子数组项添加父级title属性的JS实现
JS没有专门针对这个需求的“一键式”方法,但用数组的迭代方法可以轻松实现,以下是两种常见方案:
方案一:直接修改原数组
如果不需要保留原始数据,可以直接遍历父数组,给每个子数组的项添加title属性:
// 模拟你的原始数据 const parentArray = [ { title: "数学题集", pozzles: [ { id: 1, content: "解方程" }, { id: 2, content: "几何证明" } ] }, { title: "英语练习", pozzles: [ { id: 3, content: "完形填空" }, { id: 4, content: "阅读理解" } ] } ]; // 遍历父数组,给每个子项添加title parentArray.forEach(parent => { parent.pozzles.forEach(puzzle => { puzzle.title = parent.title; }); });
方案二:生成新数组(不修改原数据)
如果需要保留原始数据,可以用map方法生成新数组,避免修改原对象:
const newParentArray = parentArray.map(parent => ({ // 复制父级的其他属性 ...parent, // 生成新的pozzles数组,每个项添加title pozzles: parent.pozzles.map(puzzle => ({ ...puzzle, title: parent.title })) }));
这两种方式都能实现你要的效果,根据是否需要保留原数据选择即可。
内容的提问来源于stack exchange,提问作者Pankaj Sonava
相关产品推荐
相关产品推荐

