使用Jasmine是否可以测试2个数组是否包含相同的元素,但不一定以相同的顺序? IE

array1 = [1,2,3];
array2 = [3,2,1];

expect(array1).toEqualIgnoreOrder(array2);//should be true

最佳答案

如果只是整数或其他原始值,则可以在比较之前将它们 sort()

expect(array1.sort()).toEqual(array2.sort());

如果是对象,则将其与 map() 函数结合以提取将被比较的标识符
array1 = [{id:1}, {id:2}, {id:3}];
array2 = [{id:3}, {id:2}, {id:1}];

expect(array1.map(a => a.id).sort()).toEqual(array2.map(a => a.id).sort());

10-04 22:51
查看更多