gpt4 book ai didi

javascript - 为什么 Jasmine toEqual 在将空数组与空对象进行比较时返回 true?

转载 作者:行者123 更新时间:2023-11-29 21:47:00 26 4
gpt4 key购买 nike

我明白为什么以下返回 false...

expect({}).toBe({});

我明白了为什么以下返回 true...

expect({}).toEqual({});

但为什么下面的为真

expect([]).toEqual({});

最佳答案

看起来 toEqual() 将两个项目都视为对象并迭代每个项目的可枚举属性 — 检查它们的值是否相等。

换句话说,它似乎将数组视为常规 JS 对象,使用索引作为具有相应值的“属性”。只要数组中的索引/值对与对象中的属性/值对匹配,jasmine 显然会将它们视为相等。

例如,以下是(令人惊讶地)成功的......

  var myArray = ['a', 'b'];
var myObj = {
1: 'b',
0: 'a'
};
expect(myArray).toEqual(myObj);

关于javascript - 为什么 Jasmine toEqual 在将空数组与空对象进行比较时返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30765006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com