はじめに
この実験では、JavaScript の関数を使って配列の和集合を実装する方法を学びます。提供された比較関数を使って、2 つの配列のいずれかに少なくとも 1 回以上存在するすべての要素を見つけて返します。この実験が終わるとき、Array.prototype.findIndex() メソッドと Set オブジェクトを使って配列を比較して結合する方法をより深く理解しているでしょう。
関数に基づいて 2 つの配列の和集合を見つける方法
Node.js を使って関数に基づいて 2 つの配列の和集合を見つけるには、次の手順に従います。
- ターミナル/SSH を開き、
nodeと入力します。 - 次のコードを使って、
Array.prototype.findIndex()を使って、aのすべての値と、比較関数がaで一致を見つけないbの値でSetを作成します。
const unionWith = (a, b, comp) =>
Array.from(
new Set([...a, ...b.filter((x) => a.findIndex((y) => comp(x, y)) === -1)])
);
unionWith関数に 3 つの引数:最初の配列、2 番目の配列、および比較関数を渡します。- 関数は、提供された比較関数を使って、2 つの配列のいずれかに少なくとも 1 回以上存在するすべての要素を返します。
unionWith関数を呼び出す例を次に示します。
unionWith(
[1, 1.2, 1.5, 3, 0],
[1.9, 3, 0, 3.9],
(a, b) => Math.round(a) === Math.round(b)
);
// [1, 1.2, 1.5, 3, 0, 3.9]
これにより、2 つの配列の和集合として [1, 1.2, 1.5, 3, 0, 3.9] が返されます。
まとめ
おめでとうございます!関数に基づく配列の和集合の実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。