仅使用对象的引用从数组中删除对象

时间:2013-07-15 15:16:22

标签: javascript arrays

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

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

function DoWork() {

   var TheObject = GetTheObject(SomeParamter);
}

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

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

1 个答案:

答案 0 :(得分:32)

只需使用Array.prototype.indexOf

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

请注意,如果定位IE< 9你需要为indexOf引入一个polyfill;您可以在MDN页面中找到one