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。MDN ページで見つけることができます。

于 2013-07-15T15:21:14.977 に答える