把for循环换成forEach
时间: 2023-07-22 07:05:38 浏览: 86
当将 `for` 循环替换为 `forEach` 时,需要注意一些细微的差异。在原始的代码中,我们使用 `for...of` 循环来迭代 `children` 数组。下面是将 `for` 循环替换为 `forEach` 的修改后的代码示例:
```javascript
function processNestedData(data) {
function processChildren(children) {
const result = [];
children.forEach((child) => {
const levelData = {
level: child.level,
id: child.id
};
if (child.children && child.children.length > 0) {
result.push({
...levelData,
...processChildren(child.children)
});
} else {
result.push({
level1: levelData,
last: []
});
}
if (child.last) {
result[result.length - 1].last.push(child.last);
}
});
return result;
}
return processChildren(data);
}
const input = [
{
level: 1,
id: 1,
children: [
{
level: 2,
id: "1-1",
children: [
{
level: 3,
id: "1-1-1"
},
{
level: 3,
id: "1-1-2"
}
]
}
]
},
{
level: 1,
id: 2,
children: []
}
];
const output = processNestedData(input);
console.log(output);
```
请注意,`forEach` 方法接受一个回调函数作为参数,并且该回调函数在数组的每个元素上执行。在回调函数内部,我们将 `child` 参数作为循环变量,并将原来的循环体代码放在回调函数中。
阅读全文