文字列値の複数の JavaScript 配列が与えられた場合、すべてで同じように出現する要素を見つけます 配列。例:
<code class="javascript">var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza']; var arr2 = ['taco', 'fish', 'apple', 'pizza']; var arr3 = ['banana', 'pizza', 'fish', 'apple'];</code>
期待される出力:
<code class="javascript">['apple', 'fish', 'pizza']</code>
一致する要素を見つけるには、配列メソッドの組み合わせを使用できます:
<code class="javascript">const arrays = [arr1, arr2, arr3]; const result = arrays.shift().filter((v) => { return arrays.every((a) => { return a.indexOf(v) !== -1; }); });</code>
手順:
このロジックを各配列に繰り返し適用することで、提供された配列すべてで同一に出現する要素を効果的に見つけることができます。
重複要素の処理:
提供されるソリューションは、配列に重複要素が含まれていないことを前提としています。使用する場合は、次のようにコードを変更できます:
<code class="javascript">const result = arrays.shift().reduce((res, v) => { if (res.indexOf(v) === -1 && arrays.every((a) => { return a.indexOf(v) !== -1; })) res.push(v); return res; }, []);</code>
このコードでは、.filter() の代わりに .reduce() を使用します。結果の配列内の重複をチェックし、すべての配列に存在する一意の要素のみを追加します。
任意の数の配列:
このソリューションは、次のように動作するように設計されています。配列の数が不明です。 arrays.shift() を使用すると、すべての配列が処理されるまで、最初の配列と残りの配列を順番に比較できます。
以上が複数の JavaScript 配列間で一致する要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。