異なる配列にわたる配列内の一致の検索
文字列値を持つ複数の 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; }); });
このソリューションでは、
外側の配列を並べ替えます ( 配列) は長さに基づいてパフォーマンスを最適化できます。
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 サイトの他の関連記事を参照してください。