removeAll()
関数を作成しようとしていますが、その特定の値(インデックスではない)の配列のすべての要素が削除されます。配列の複数の項目を値で削除するにはどうすればよいですか?
私たちがループを変更すると、インデックスが動きやすくなります(私たちが望むように動作させるのが非常に困難になります)。そして、変更するたびにループを再起動するのは非常に非効率的です。大きなアレイ。しかし、
var myarray = [0, 1, 2, 3, 4];
var tofind = 2;
var stored_index = arrFind(tofind, myarray);
if (stored_index != -1) {
myarray.splice(stored_index, 1);
}
alert(myarray.join(",")); //0,1,3,4
:このような要素を削除するのは簡単です
function arrFind(val, arr) {
for (var i = 0, len = arr.length, rtn = -1; i < len; i++) {
if (arr[i] === val) {
return i;
}
}
return -1;
}
:
はこれまでのところ、私は、それはこのようになります(古いIEのサポートのために)私自身のarr.indexOf
機能を書きました私が先に指摘したように、ループしている間にこれを行うとき、私たちは困ってしまいます。
ループ処理中に配列アイテムを適切に削除する方法については、どのようなアイデアですか?
(loop_を_insideが、私の質問は_aのproblem_程度であるため、_multiple_の項目を削除するとき_not_ DUPである)(http://stackoverflow.com/q/3954438/908879)[この関連する質問を見つけました] – ajax333221