私は配列が['Bobby', 'John', 'Sam']
、別のものは['Bobby', 'John']
です。私は最初の2番目の配列をフィルタリングしたいだけで、残すのはSam
です。私はfilter
でこれを達成しようとしています。 Array#indexOf
方法でJavaScriptの文字列の別の配列から文字列の配列をフィルタリングします(これは重複しません)
-1
A
答えて
3
使用Array#filter
方法:
var a = ['Bobby', 'John', 'Sam'],
b = ['Bobby', 'John'];
var res = a.filter(function(v) {
return b.indexOf(v) == -1;
// or in latest browser
// return !b.includes(v);
})
console.log(res);
Array#filter
が述語であるコールバックを取り、そのコールバックに基づいて配列の要素をフィルタリングするので、これは動作します。コールバックがtrueを返す場合、要素は保持され、それ以外の場合は除外されます。ドキュメントごと:
callback
関数は、配列の各要素をテストするために、述語です。要素を維持するためにtrueを返し、そうでない場合はfalse
上記のスニペットにおいて
、v
は、アレイ状に処理されている電流値の値を保持します。コードはa
配列を通過し、その要素(v
)がArray#indexOf
と表示された場合にtrueまたはfalseを返します。 Array#indexOf
返すので
-1素子ががv
がb
に存在しないかどうかを確認するために、アレイ内のコールバックチェックを存在しない場合。そうでない場合は、フィルタリングして、結果を得てください。
+2
私は過剰かもしれないいくつかの追加を追加しました。あなたが望むようにロールバックする:^) – Li357
重複した質問をしないでください。本当にサイトが劣化します。答えが得られない場合は、注意を引き付けるために賞金またはそれに類するものをつけてください。 – Li357
謝罪の男、少なくともそれは働いた:) – Ryan
賞金のボタンはどこですか?本当にそれを見つけることはできません。 – Ryan