ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で 2 つの配列の共通部分を効率的に見つけるにはどうすればよいですか?
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.includes とArray.prototype.indexOf は、厳密等価 (===) を使用して配列内の要素を比較します。つまり、配列に複雑なオブジェクトが含まれている場合、比較ではオブジェクト参照のみが照合され、その内容は照合されません。このユースケースを処理するには、Array.prototype.some を使用してカスタム比較ロジックを指定することを検討してください。
以上がJavaScript で 2 つの配列の共通部分を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。