为什么深度等于两个具有深度相等元素的数组产生错误?

时间:2016-08-13 22:21:42

标签: javascript arrays node.js ecmascript-6 chai

我必须在javascript中使用数组。对==和==两者的元素进行等式比较。但是当我用chai对阵列进行深度平衡时,我一直都会失败。

我做错了什么?为什么一个数组将元素显示为字符串。显然它实际上不是一个字符串,对吧?否则===运算符会失败。

数组中元素的类型是mongoose ObjectId。

数组:

A: ["57af9c0623a2c3b106efa7a8"]
B: [ 57af9c0623a2c3b106efa7a8 ]

A[0] === B[0] // true

失败的一行:

expect(A).to.eql(B);

1 个答案:

答案 0 :(得分:0)

这是两个等于数组但不同的对象。

var a = ['57af'];
var b = ['57af'];
console.log(a[0] === b[0], a === b);
---
true, false

用于比较(来自here

isEqual = a.length == b.length && a.every(function(v,i) { return v === b[i]})