Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何遍历嵌套的对象数组,并将回调函数应用于更改它的每个元素_Javascript - Fatal编程技术网

Javascript 如何遍历嵌套的对象数组,并将回调函数应用于更改它的每个元素

Javascript 如何遍历嵌套的对象数组,并将回调函数应用于更改它的每个元素,javascript,Javascript,我需要更改嵌套对象数组中所有元素的属性键名称和属性值 给定此嵌套对象数组: const nestedArr = [ { id: 1, name: "foo", children: [ { id: 2, name: "bar", children: [ { id: 3, name: "baz" } ]

我需要更改嵌套对象数组中所有元素的属性键名称和属性值

给定此嵌套对象数组:

const nestedArr = [
  {
    id: 1,
    name: "foo",
    children: [
      {
        id: 2,
        name: "bar",
        children: [
          {
             id: 3,
             name: "baz"
          }
        ]
      }
    ]
  },
]
我希望能够应用一个回调函数,在这里我可以改变每个对象。在这个例子中,我想用“1”附加所有元素name prop。或者我想把“name”道具键改成“name1”

因此,在我对其运行函数后,
mutaterecursive(nestedArr,callback)
数组应更改为:

const nestedArr = [
  {
    id: 1,
    name1: "foo1",
    children: [
      {
        id: 2,
        name1: "bar1",
        children: [
          {
             id: 3,
             name1: "baz1"
          }
        ]
      }
    ]
  },
]
因此,基本上我需要能够递归地遍历树,并为每个元素运行一个回调函数,该函数将元素作为param,对其执行某些操作并返回新的变异元素

我对回调函数的实现细节不太感兴趣,但更像是如何遍历树,并为每个元素运行回调函数,该函数返回一个新的修改过的eac元素实例。

尝试以下方法:

const nestedArr=[
{
id:1,
姓名:"富",,
儿童:[
{
id:2,
名称:“酒吧”,
儿童:[
{
id:3,
名称:“baz”
}
]
}
]
},
];
函数applycallback递归(数组、回调){
return Array.isArray(Array)?Array.map(({children,…item})=>({children:applycallbackrecursely(children,callback),…callback(item)})):数组;
}

什么不起作用?请添加您的尝试。尝试这个:谢谢。我唯一需要添加的是
array&&
array.map
部分之前