想把数组外层的selected和chlidren里面的这个属性都改为false,递归如何写

 let newArr = [
            {
                name: "2020合集",
                selected: true,
                children: [
                    {
                        id: 1,
                        selected: true,
                        name: "夏",
                    },
                    {
                        id: 2,
                        selected: true,
                        name: "秋",
                    }
                ]
            }
        ]

 let newArr = [
            {
                name: "2020合集",
                selected: true,
                children: [
                    {
                        id: 1,
                        selected: true,
                        name: "夏",
                    },
                    {
                        id: 2,
                        selected: true,
                        name: "秋",
                    }
                ]
            }
        ]
       let c= this.loop(newArr, 'selected', false);
       console.log(newArr) 
loop = (data, key, val) => {
      data.map((item) => {
            item[key] = val;
            if (item.children && item.children.length > 0) {
                loop(item.children, key, val);
            }
        })
 }

 

let newArr = [
            {
                name: "2020合集",
                selected: true,
                children: [
                    {
                        id: 1,
                        selected: true,
                        name: "夏",
                    },
                    {
                        id: 2,
                        selected: true,
                        name: "秋",
                    }
                ]
            }
        ]

function dg(arr) {
	arr.forEach(function(obj){
		if ("selected" in obj) {
			obj.selected = false;
		}
		if (Array.isArray(obj.children)) {
			dg(obj.children);
		}
	});
}
dg(newArr);
console.log(newArr);

如果结构就这样,只有2层的话,不用递归,循环嵌套就可以了。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y