27

假设我调用了一个对象数组,MyArray并且某个函数返回该数组中特定元素的引用;像这样的东西:

MyArray = [Object1, Object2, ..., Objectn];

function DoWork() {

   var TheObject = GetTheObject(SomeParamter);
}

此时,TheObject指向数组中的某个元素。假设我想从中删除这个元素MyArray,这是否可能无需重新循环通过数组来获取元素的索引?

我正在寻找类似 splice 的东西,它可以与元素的引用而不是元素的索引一起使用。

4

1 回答 1

44

只需使用Array.prototype.indexOf

let index = MyArray.indexOf(TheObject);
if(index !== -1) {
  MyArray.splice(index, 1);
}

请记住,如果以 IE < 9 为目标,则需要为indexOf;引入 polyfill。您可以在 MDN 页面中找到一个。

于 2013-07-15T15:21:14.977 回答