JavaScript之递归删除去掉属性入坑splicedelete$deleteforEachrecursionchildren

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript之递归删除去掉属性入坑splicedelete$deleteforEachrecursionchildren相关的知识,希望对你有一定的参考价值。

目录


1、数据源

let datas = [
	
		id: 1,
		nulls: "null",
	,
	
		id: 2,
		children: [
			
				id: 4,
			,
			
				id: 5,
				nulls: "null",
			,
			
				id: 6,
				children: [
					
						id: 7,
						nulls: "null",
					,
					
						id: 8,
					,
					
						id: 9,
						children: [
							
								id: 11,
								nulls: "null",
							,
							
								id: 12,
								children: [
									
										id: 17,
										nulls: "null",
									,
									
										id: 18,
									,
								],
							,
							
								id: 13,
								children: [
									
										id: 15,
										nulls: "null",
									,
									
										id: 16,
									,
								],
							,
							
								id: 14,
							,
						],
					,
					
						id: 10,
					,
				],
			,
		],
	,
	
		id: 3,
	,
];

2、递归

function recursion(data) 
	data.forEach((item, i) => 
		if (item.nulls) 
			console.log(item.nulls, i);
			// -------------------在递归中无法使用这两个API-------------------
			// data.splice(i, 1);
			// this.$delete(data, i); // 这是vue中的delete方法
			// delete item;
			// -------------------在递归中无法使用这两个API-------------------

			// 解决
			// 通过自定义属性设置元素的显示与隐藏
			item.isShow = true;
		
		
		if (item.children) recursion(item.children);
	);


recursion(data);

以上是关于JavaScript之递归删除去掉属性入坑splicedelete$deleteforEachrecursionchildren的主要内容,如果未能解决你的问题,请参考以下文章

电脑桌面下面多了两个工具栏是怎么回事啊,请问怎么能去掉,我删除之

JavaScript之原型

JavaScript链接

javascript 之 面向对象理解对象

js删除数组元素

VUE从入门到入坑—06. 父子组件通信 / 几种常用的第三方组件库