Is there an Array equality match function that ignores element position in jest.js?

jestjs

Solution

There is no built-in method to compare arrays without comparing the order, but you can simply sort the arrays using `.sort()` before making a comparison:

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

You can check the example in this fiddle.

Problem

I get that `.toEqual()` checks equality of all fields for plain objects: ``` expect( {"key1":"pink wool","key2":"diorite"} ).toEqual( {"key2":"diorite","key1":"pink wool"} ); ``` So this passes. But the same is not true for arrays: ``` expect(["pink wool", "diorite"]).toEqual(["diorite", "pink wool"]); ``` There does not seem to be a matcher function that does this in the jest docs, i.e. that tests for the equality of two arrays irrespective of their elements positions. Do I have to test each element in one array against all the elements in the other and vice versa? Or is there another way?

Original source