茉莉花期望不匹配数组结果
jasmine expect not matching array result
我正在尝试以下代码:
describe("array deletion", function () {
it("leaves a hole in middle", function () {
var array = ['one','two','three'];
delete array[1]; //'two' deleted
expect(array).toEqual(['one',undefined,'three']);
});
});
这种期望失败了,但为什么?它不应该相等吗?
JavaScript 中有 3 个元素的数组与只有 2 个元素的数组之间存在差异,其中一个元素是undefined
。例如
var a = [1,2,3];
delete a[1];
a.forEach(function(x) { console.log(x); });
// writes 1 3
[1,undefined,3].forEach(function(x) { console.log(x); })
// writes 1 undefined 3
也
1 in a
// returns false
1 in [1,undefined,2]
// returns true
源总是在你这边,如果你看toEquals
匹配器代码,你会发现它使用了以下源文件中eq
函数(它有点长,所以我只提供链接,底部是比较对象和数组的部分:https://github.com/jasmine/jasmine/blob/79206ccff5dd8a8b2970ccf5a6429cdab2c6010a/src/core/matchers/matchersUtil.js)。
相关文章:
- 如何实现基于两个数组创建结果数组的逻辑
- 无法获取所需的结果数组
- 动态结果数组需要使用 Angular JS 与不同布局的表绑定
- 如何从谷歌地图API返回的结果数组中提取城市名称
- 如何查询具有特定 id 的 json 文件并获取结果数组
- 如何将谷歌放置 API 结果数组与淘汰赛集成
- 是否保证 document.querySelectorAll(“input[type=checkbox”) 的结果数组的
- 如何使用 Parse.promise javascript 定义一个承诺数组并获取结果数组 [parse.com]
- HTML5 语音 API - 重置结果数组
- 如何访问在 ajax 中返回的结果数组
- 输出一个结果数组,其中包含给定数组的唯一元素的分组计数
- Javascript返回基于日期的平均测试结果数组
- NodeJS ExpressJS如何打印API结果数组
- 在添加到结果数组之前,请检查值是否存在
- 为什么String.match在结果数组中返回重复项
- 如何合并两个只有唯一或不同值的复杂JSON对象,这些值只显示在结果数组中
- Javascript -根据字符拆分字符串,但将其保留在结果数组中
- Javascript, array concat将Windows Object添加到结果数组中,但它不适用于Firefo
- 如何分割正则表达式空间和标点匹配,但保留结果数组中的标点符号
- 尝试从json树状结构JavaScript递归创建一个结果数组