切片不要删除我的对象

我有一个函数的目的是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)方法通过删除现有元素和/或添加新元素来更改数组的内容。