slice 和 splice 的区别

做了个练手项目,遇到这么个情况

// 数组名暂定Arr
[{ //对象1
	name:1,
	arr: [
		{ prop1: 111 }
		{ prop2: 222 }
	]
}, { //对象2
	name:2,
	arr: [
		{ prop1: 111 }
		{ prop2: 222 }
	]
},{ //对象3
	name:3,
	arr: [
		{ prop1: 111 }
		{ prop2: 222 }
	]
}...]

上面这是数据格式,arr里的值是变动的,需要一个功能,就是当arr数组里为空时,删除所属的对象。
例如:当对象2中的arr为 [] 时,需要删除对象2
一开始,我通过findIndex找到符合条件的index值,再用 Arr.slice(index, 1)来删除对象,但不成功。
但,当我尝试用Arr.splice(index, 1)来操作时,却成功了。

  1. slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素。注意:该方法不会改变原数组,而是返回一个子数组,如果想删除数组中的一段元素,应该使用Array.splice()方法。

  2. splice():该方法向或者从数组中添加或者删除项目,返回被删除的项目。(该方法会改变原数组)

这就是原因所在吧

你可能感兴趣的:(Javascript)