javascript - 如何将与父级相同的 id 应用于同一级别的子级数组?
问题描述
我有以下对象
[
{ name: "parent", id: 1 },
{ name: "children", id: 2 },
{ name: "children", id: 3 },
{ name: "parent", id: 4 },
{ name: "children", id: 5 }
]
如您所见,父母和孩子都处于同一级别。我需要做的是将子级与父级连接起来,将父级 ID 应用于具有新属性的子级数组。像这样的东西:
[
{ name: "parent", id: 1 },
{ name: "children", id: 2, parentId: 1 },
{ name: "children", id: 3, parentId: 1 },
{ name: "parent", id: 4 },
{ name: "children", id: 5, parentId: 4 },
{ name: "children", id: 6, parentId: 4 }
]
到目前为止,我还没有能够实现这个问题的逻辑。对此问题的任何帮助将不胜感激。
提前致谢!
解决方案
您需要遍历您的数组并存储最后遇到的父 id,以便能够将其应用于每个后续子
const data = [
{ name: "parent", id: 1 },
{ name: "children", id: 2 },
{ name: "children", id: 3 },
{ name: "parent", id: 4 },
{ name: "children", id: 5 }
]
let lastParentId = null
data.forEach(el => {
if (el.name === "parent") {
lastParentId = el.id
} else {
el.parentId = lastParentId
}
})
console.log(data)
推荐阅读
- html - 带关键帧的 CSS 动画
- azure - 如何计算预测时间范围的特征
- python - 如果应该存在一个公共元素,如何找到列表中给出的所有可能组合?
- c++ - Ifstream 在几行后停止读取文件
- c# - 有没有办法通过拖放轻松地将对象放入网格中?
- c# - Asp.Net Core 与 Angular 数据压缩方法
- angular - Angular Datatables 以编程方式选择行
- bash - Bash 字符串替换“”
- sparql - 获取实例 - Protege 中的 SPARQL 查询
- react-native - react-native-linear-gradient (-lBVLinearGradient) 上的 React Native Xcode 构建错误