做了个练手项目,遇到这么个情况
// 数组名暂定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)
来操作时,却成功了。
-
slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素。注意:该方法不会改变原数组,而是返回一个子数组,如果想删除数组中的一段元素,应该使用Array.splice()方法。
-
splice():该方法向或者从数组中添加或者删除项目,返回被删除的项目。(该方法会改变原数组)
这就是原因所在吧