为什么两个具有深度相等元素的数组的深度相等结果为false ?

Why is deep equals on two arrays with deeply equal elements yielding false?

本文关键字:深度 数组 结果 false 元素 两个 为什么      更新时间:2023-09-26

我必须在javascript数组。同时具有===和==的元素的相等性比较成功。但是当我用chai对数组执行深度等号运算时,总是失败。

我做错了什么?为什么一个数组将元素显示为字符串?很明显它不是一个字符串,对吧?否则===操作符将失败。

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

数组:

A: ["57af9c0623a2c3b106efa7a8"]
B: [ 57af9c0623a2c3b106efa7a8 ]
A[0] === B[0] // true

失败的行:

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

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

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

用来比较(从)

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