関数に基づく配列の対称差

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript を使って、与えられた関数に基づいて 2 つの配列の対称差を見つける方法を探ります。2 つの配列の要素を比較し、各配列固有の値を返すために、Array.prototype.filter()Array.prototype.findIndex() メソッドを使います。この実験が終わるとき、JavaScript でこれらのメソッドを使って配列を比較および操作する方法をより深く理解しているでしょう。

配列の対称差を見つける関数

比較関数として与えられた関数を使って 2 つの配列の対称差を見つけるには、次の手順に従います。

  1. ターミナル/SSH を開き、コーディングを練習するために node と入力します。
  2. Array.prototype.filter()Array.prototype.findIndex() メソッドを使って適切な値を見つけます。
  3. 与えられたコードを使って操作を実行します。
const symmetricDifferenceWith = (arr, val, comp) => [
  ...arr.filter((a) => val.findIndex((b) => comp(a, b)) === -1),
  ...val.filter((a) => arr.findIndex((b) => comp(a, b)) === -1)
];

たとえば、次の入力を考えてみましょう。

symmetricDifferenceWith(
  [1, 1.2, 1.5, 3, 0],
  [1.9, 3, 0, 3.9],
  (a, b) => Math.round(a) === Math.round(b)
); // [1, 1.2, 3.9]

上記のコードは、2 つの配列の対称差として [1, 1.2, 3.9] を返します。

まとめ

おめでとうございます!関数に基づく配列の対称差の実験を完了しました。スキルを向上させるために、LabEx でさらに実験を練習できます。