現在、$.grepを使用して、渡す配列から要素をフィルタリングして削除しています。$.grep はフィルタリングのみに使用されることを意図していたと思いますが、配列全体を反復処理しているため、その中の配列も変更する必要があると考えました。
他に提案できるアプローチはありますか?$.mapについて考えましたが、私の知る限り、要素を削除するのではなく、翻訳するために使用する必要があります。
別$.each
の私の唯一の選択肢ですか?
私のコードの関連部分:
$.each(filter, function (k, v) {
if (v.codeKeys) {
$.each(v.codeKeys, function (i, codeKey) {
rows = $.grep(rows, function (v2, i2) {
if ($.isArray(v2[v.dbColumn]) &&
$.inArray(codeKey, v2[v.dbColumn]) === -1) {
var index = $.inArray(codeKey ,v2[v.dbColumn]);
if (v2[v.dbColumn][index])
v2[v.dbColumn].remove(index);
return true;
}
else {
return v2[v.dbColumn] !== codeKey;
}
});
});
}
});