切片不要删除我的对象
我有一个函数的目的是search一个对象具有相同的值将其删除全局数组并返回它,但它不是删除
function removeAndget(p){ var p2; for(var i =0;i<waiting_list.length;i++){ if(waiting_list[i].le === p.le){ p2 =waiting_list[i]; console.log(waiting_list); waiting_list.slice(i,1); console.log(waiting_list); break; } } return p2; }
我需要删除的对象,但由于某种原因,它仍然在,有人可以告诉我,我做错了什么?
你应该使用
array.splice(start, deleteCount)
不切片。
你在参数的格式错误的数组上使用slice()
方法。 如果你想使用切片,参数格式是不同的
slice(start, finish)
在你的情况,例如slice(i, i+1)
slice()
不改变数组, splice()
做
在你的例子中,你可以使用splice(i, 1)
以下是描述这两个function所做的一些细节:
片:
slice(begin,end)
方法将数组的一部分的浅表副本返回到从开始到结束(不包括结束)中select的新数组对象中。 原始数组不会被修改。
拼接:
splice(start,deleteCount)
方法通过删除现有元素和/或添加新元素来更改数组的内容。