jQueryに配列があります。選択したフィールドで特定の値を持つすべての要素を削除したいと考えています。ループとスプライスを実行すると、エラーが発生します。
$.each(arr,function(idx,val) {
if (arr[idx].field == "something") {
arr.splice(idx,1);
}
});
エラーが発生する理由を理解しています:
Uncaught TypeError: Cannot read property 'field' of undefined
...しかし、最善のアプローチを見つけるのに苦労しています。少しの調査では、grep が正しいアプローチである可能性があるという兆候が示されています。助言がありますか?
* 答え *
結局、これが私がしたことです。誰かがより良い答えを持っていますか?:
for (var idx=0; idx<arr.length; idx++)
{
if (arr[idx].field == "something") {
arr.splice(idx,1);
idx--;
}
}