数组内部严格等于

问题描述 投票:1回答:2

我想检查两个数组是否包含相同顺序的相同元素(不是深等于)。

var a = { id: 1 }
var b = { id: 2 }
var c = { id: 3 }

var arr = [a, b, c]

expect(arr).to.______([a, b, c])               // true

expect(arr).to.______([a, c, b])               // false: different order
expect(arr).to.______([a, b])                  // false: missing element
expect(arr).to.______([a, b, c, { id: 4 }])    // false: extra element
expect(arr).to.______([a, b, { id: 3 }])       // false: different object reference

我当然可以写

assert.strictEqual(arr.length, expected.length, "length");
for (let q = 0; q < arr.length; ++q) assert.strictEqual(arr[q], expected[q], `[${q}]`);

但是我认为应该已经有一些方法。

javascript chai
2个回答
1
投票

Chaieql方法,我认为这就是您要寻找的https://www.chaijs.com/api/bdd/#method_eql


0
投票

您可以将.ordered.ordered结合使用,如下所示:

默认情况下,使用严格的(===)相等性比较成员。在链的前面添加.deep,以改为使用深度相等。

.members
.members
© www.soinside.com 2019 - 2024. All rights reserved.