私は次の構造の配列を持っています:
var y = [{id:12,count:10}, {id:23,count:89}, {id:21,count:100},]
id:23の要素を削除するにはどうすればよいですか?
配列Array.prototype.removeでプロトタイプメソッドを作成するために使用するつもりはありません
どんなポインタもありがたい
ありがとう
私は次の構造の配列を持っています:
var y = [{id:12,count:10}, {id:23,count:89}, {id:21,count:100},]
id:23の要素を削除するにはどうすればよいですか?
配列Array.prototype.removeでプロトタイプメソッドを作成するために使用するつもりはありません
どんなポインタもありがたい
ありがとう
ES5 コード:
y = y.filter(function( obj ) {
return obj.id !== 23;
});
ES5 は、すべての主要なブラウザーで広くサポートされています。それでも、古いブラウザをバックアップするために、いくつかの Shim の 1 つを含めることをお勧めします。
for (i in y) {
if (y[i].id == 23) {
y.splice(i, 1);
break;
}
}
Denis Ermolin の答えはオプションですが、いくつかの問題が発生する可能性があります。
for(var i=0;i<y.length;i++)
{
if (y[i].hasOwnProperty('id') && y[i].id === 23)
{
delete(y[i]);
break;
}
}
配列を使用する場合は、for - in
ループを回避することを常にお勧めします。これは をループするArray.prototype
ため、インデックス番号ではなくi
が突然含まれる可能性があります。length
オブジェクトを扱っている場合、for in
ループは素晴らしいことですが、繰り返しになりますが、プロトタイプをループするため、hasOwnProperty
メソッドを使用する方がよいのです。
残りはかなり簡単だと思います...幸運を祈ります