data2 = [{ name: "治安管理工作", children: [{ name: "娱乐场所治安管理", children: [{ name: "娱乐场所治安管理工作" }] }] 把这个多层嵌套数组里的每一层数据的name的值改成其他的
时间: 2024-02-14 15:03:08 浏览: 67
你可以使用递归的方式来遍历多层嵌套的数组,然后修改每个对象中的 name 属性。
以下是一个修改多层嵌套数组中 name 属性的示例代码:
```javascript
let data2 = [
{
name: "治安管理工作",
children: [
{
name: "娱乐场所治安管理",
children: [
{
name: "娱乐场所治安管理工作"
}
]
}
]
}
];
function modifyName(arr, newName) {
if (Array.isArray(arr)) {
arr.forEach((item) => {
if (item.hasOwnProperty("name")) {
item.name = newName;
}
if (item.hasOwnProperty("children")) {
modifyName(item.children, newName);
}
});
}
}
modifyName(data2, "new name");
console.log(data2);
```
这个函数接受两个参数:要修改的数组和新的 name 值。如果数组是一个数组,那么就遍历数组中的每个对象。如果对象中有 name 属性,则将其值修改为新的 name 值。如果对象中有 children 属性,则递归调用 modifyName 函数,继续遍历其 children 属性中的每个对象。
这是一个示例使用方法:
```javascript
let data2 = [
{
name: "治安管理工作",
children: [
{
name: "娱乐场所治安管理",
children: [
{
name: "娱乐场所治安管理工作"
}
]
}
]
}
];
console.log(data2); // [{name: "治安管理工作",children: [{name: "娱乐场所治安管理",children: [{name: "娱乐场所治安管理工作"}]}]}]
modifyName(data2, "new name");
console.log(data2); // [{name: "new name",children: [{name: "new name",children: [{name: "new name"}]}]}]
```
在这个示例中,我们将多层嵌套数组中的每个对象的 name 属性都修改为了 "new name"。
阅读全文