配列が同じ内容を持っているかどうかを確認する

Beginner

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

はじめに

この実験では、JavaScript において 2 つの配列が同じ内容を持っているかどうかを確認する方法を探ります。2 つの配列を引数に取り、順序に関係なく同じ要素を含んでいれば true を返し、そうでなければ false を返す関数を作成します。この機能を実現するために、Setfor...of ループ、および Array.prototype.filter() を組み合わせて使用します。

配列の同じ内容のチェック

順序に関係なく 2 つの配列が同じ要素を含んでいるかどうかを確認するには、次の手順に従います。

  1. ターミナル/SSH を開き、node と入力します。
  2. 両方の配列の値から作成された Set を対象として for...of ループを使用します。
  3. Array.prototype.filter() を使用して、両方の配列における各固有の値の出現回数を比較します。
  4. どの要素についてもカウントが一致しない場合は false を返し、そうでなければ true を返します。

以下はそれに対応するコードです。

const haveSameContents = (a, b) => {
  for (const v of new Set([...a, ...b]))
    if (a.filter((e) => e === v).length !== b.filter((e) => e === v).length)
      return false;
  return true;
};

この関数をテストするには、次のコードを使用します。

haveSameContents([1, 2, 4], [2, 4, 1]); // true

まとめ

おめでとうございます!配列が同じ内容を持っているかどうかを確認する実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を練習できます。