ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で 2 つの配列の共通部分を効率的に見つけるにはどうすればよいですか?

JavaScript で 2 つの配列の共通部分を効率的に見つけるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 12:44:10160ブラウズ

How Can I Efficiently Find the Intersection of Two Arrays in JavaScript?

JavaScript での簡単な配列交差

配列交差はプログラミングにおける基本的な操作です。 2 つの配列が与えられると、交差は両方に共通の要素のみを含む新しい配列を返します。 JavaScript では、ライブラリを使用せずにこの操作を実装するのは驚くほど簡単です。

解決策

JavaScript で配列の交差を実現する最も簡単かつ簡潔な方法は、次の機能を利用することです。 Array.prototype.filter およびArray.prototype.includes。このアプローチにより、複雑なループや外部依存関係の必要性が回避されます。

const intersection = (array1, array2) => {
  return array1.filter((value) => array2.includes(value));
};

または、アロー関数をサポートしていない可能性がある古いブラウザの場合は、次のコードを使用できます:

const intersection = (array1, array2) => {
  return array1.filter(function(n) {
    return array2.indexOf(n) !== -1;
  });
};

このソリューションの有効性を説明するために、次のことを考慮してください。例:

console.log(intersection([1, 2, 3], [2, 3, 4, 5])); // [2, 3]

交差関数は、予想どおり、共通要素 [2, 3] を含む配列を正しく返します。

Array.prototype.includesArray.prototype.indexOf は、厳密等価 (===) を使用して配列内の要素を比較します。つまり、配列に複雑なオブジェクトが含まれている場合、比較ではオブジェクト参照のみが照合され、その内容は照合されません。このユースケースを処理するには、Array.prototype.some を使用してカスタム比較ロジックを指定することを検討してください。

以上がJavaScript で 2 つの配列の共通部分を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。