有一个JS数组,数组中有很多对象,每个对象都有 children 同样 children中也是很多对象, 是一个无限含有children 的结构,,现在我想递归这个数字,给每一个节点添加一个属性, name::'zhangsan'
时间: 2024-12-12 18:16:10 浏览: 6
jQuery 对象中的类数组操作
如果你有一个深度嵌套的JavaScript数组,其中每个对象都可能有`children`属性并且这些`children`本身也可能是数组,你可以使用递归来遍历整个树状结构,并给每个节点添加新的`name`属性。下面是一个简单的函数示例,它接受一个对象作为起始点:
```javascript
function addNameToChildren(obj, name) {
if (Array.isArray(obj.children)) { // 检查是否有children属性且是个数组
obj.children.forEach(child => { // 遍历每个子节点
addNameToChildren(child, name); // 递归处理子节点
child.name = name; // 给当前节点添加name属性
});
} else if (obj !== null) { // 如果不是数组,检查对象本身
obj.name = name;
}
}
// 使用示例
let rootObject = { children: [{ children: [{}, {}] }, {}, { children: [] }] }; // 假设这是你的数据结构
addNameToChildren(rootObject, 'zhangsan');
```
这个函数会从根节点开始,然后遍历所有直接的子节点以及它们的子节点,直到所有节点都添加了`name`属性。
阅读全文