1. ホーム
  2. jasmine

[解決済み] jest.jsで要素の位置を無視したArrayの等式マッチング関数はありますか?

2022-08-31 04:56:42

質問

私は、次のことを知りました。 .toEqual() はプレーンオブジェクトのすべてのフィールドの等式をチェックします。

expect(
    {"key1":"pink  wool","key2":"diorite"}
).toEqual(
    {"key2":"diorite","key1":"pink wool"}
);

というわけで、これはパス。

しかし、配列の場合は同じようにはいきません。

expect(["pink wool", "diorite"]).toEqual(["diorite", "pink wool"]);

jestのドキュメントには、これを行うmatcher関数がないようです。つまり、要素の位置に関係なく2つの配列の等価性をテストします。一方の配列の各要素を他方の配列のすべての要素に対してテストしなければならないのでしょうか。または他の方法がありますか?

どのように解決するのですか?

配列を順序を比較せずに比較する方法は組み込まれていませんが、単純に配列のソートを行うには .sort() を使って並べ替えることができます。

expect(["ping wool", "diorite"].sort()).toEqual(["diorite", "pink wool"].sort());

で例を確認することができます。 このフィドル .