はじめに
この実験では、JavaScript において 2 つの配列が同じ内容を持っているかどうかを確認する方法を探ります。2 つの配列を引数に取り、順序に関係なく同じ要素を含んでいれば true を返し、そうでなければ false を返す関数を作成します。この機能を実現するために、Set、for...of ループ、および Array.prototype.filter() を組み合わせて使用します。
配列の同じ内容のチェック
順序に関係なく 2 つの配列が同じ要素を含んでいるかどうかを確認するには、次の手順に従います。
- ターミナル/SSH を開き、
nodeと入力します。 - 両方の配列の値から作成された
Setを対象としてfor...ofループを使用します。 Array.prototype.filter()を使用して、両方の配列における各固有の値の出現回数を比較します。- どの要素についてもカウントが一致しない場合は
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 でさらに多くの実験を練習できます。