我必须在javascript中使用数组。对==和==两者的元素进行等式比较。但是当我用chai对阵列进行深度平衡时,我一直都会失败。
我做错了什么?为什么一个数组将元素显示为字符串。显然它实际上不是一个字符串,对吧?否则===运算符会失败。
数组中元素的类型是mongoose ObjectId。
数组:
A: ["57af9c0623a2c3b106efa7a8"]
B: [ 57af9c0623a2c3b106efa7a8 ]
A[0] === B[0] // true
失败的一行:
expect(A).to.eql(B);
答案 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]})