複数の JavaScript 配列間で一致する要素を見つけるにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-24 18:45:09
オリジナル
803 人が閲覧しました

How to Find Matching Elements Across Multiple JavaScript Arrays?

複数の JavaScript 配列にわたる要素の一致

問題

文字列値の複数の 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>
ログイン後にコピー

手順:

  1. arrays.shift() を使用して、元のリストから最初の配列を削除します。
  2. で .filter() を使用します。各要素をループする最初の配列 v.
  3. 残りの配列で .every() を使用して、それぞれに現在の要素が含まれているかどうかを確認します v.
  4. 要素 v が存在する場合すべての配列で、それを結果配列に含めます。

このロジックを各配列に繰り返し適用することで、提供された配列すべてで同一に出現する要素を効果的に見つけることができます。

追加の考慮事項

重複要素の処理:

提供されるソリューションは、配列に重複要素が含まれていないことを前提としています。使用する場合は、次のようにコードを変更できます:

<code class="javascript">const result = arrays.shift().reduce((res, v) => {
  if (res.indexOf(v) === -1 &amp;&amp; arrays.every((a) => {
    return a.indexOf(v) !== -1;
  })) res.push(v);
  return res;
}, []);</code>
ログイン後にコピー

このコードでは、.filter() の代わりに .reduce() を使用します。結果の配列内の重複をチェックし、すべての配列に存在する一意の要素のみを追加します。

任意の数の配列:

このソリューションは、次のように動作するように設計されています。配列の数が不明です。 arrays.shift() を使用すると、すべての配列が処理されるまで、最初の配列と残りの配列を順番に比較できます。

以上が複数の JavaScript 配列間で一致する要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!