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

Barbara Streisand
リリース: 2024-10-31 01:58:29
オリジナル
711 人が閲覧しました

How to Find Matches in Arrays Across Multiple Arrays in Javascript?

異なる配列にわたる配列内の一致の検索

文字列値を持つ複数の JavaScript 配列があり、検索とすべての単一の配列で同一の一致のみを抽出します。

次の配列があると想像してください:

var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
ログイン後にコピー

目的は、3 つすべてに出現する一致のみを含む配列を取得することです。配列。

['apple', 'fish', 'pizza']
ログイン後にコピー

このタスクは、外部ライブラリを使用せずに実行できます。 1 つのアプローチには、filter() メソッドを every() と組み合わせて使用​​することが含まれます。

var result = arrays.shift().filter(function(v) {
    return arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    });
});
ログイン後にコピー

このソリューションでは、

  • shift() は、arrays コレクションから最初の配列を削除します。
  • filter() は、指定された条件。
  • every() は、arrays コレクション内のすべての要素が条件に合格するかどうかを確認します。

外側の配列を並べ替えます ( 配列) は長さに基づいてパフォーマンスを最適化できます。

arrays.sort(function(a, b) {
    return a.length - b.length;
});
ログイン後にコピー

さらに、配列内に重複が存在する場合は、代わりに reduce() メソッドを使用できます。 filter().

var result = arrays.shift().reduce(function(res, v) {
    if (res.indexOf(v) === -1 && arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    })) res.push(v);
    return res;
}, []);
ログイン後にコピー

これらのメソッドを使用すると、未知の長さや重複が含まれている場合でも、複数の配列にわたる配列内の一致を効果的に見つけることができます。

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

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