在 JavaScript 中测试多维数组
Testing multidimensional arrays in javascript
我在FreeCodeCamp上解决挑战。下面的代码通过了他们的测试,挑战标记为已解决,但我自己的测试没有通过,我只是不明白为什么......
function chunk(arr, size) {
if (size >= arr.length || size <= 0)
return [arr];
var result = [];
var i = 0;
while(arr.length > 0) {
result.push([]);
for (var j = 0; j < size && arr.length > 0; ++j) {
result[i].push(arr.shift());
}
i++;
}
return result;
}
alert(chunk(["a", "b", "c", "d"], 2) == [["a", "b"], ["c", "d"]]);
如果我正确理解了 JS 中的数组含义,警报应该打印为 true,但它打印为 false,我不知道为什么?
这是有效的:
function chunk(arr, size) {
if (size >= arr.length || size <= 0)
return [arr];
var result = [];
var i = 0;
while (arr.length > 0) {
result.push([]);
for (var j = 0; j < size && arr.length > 0; ++j) {
result[i].push(arr.shift());
}
i++;
}
return result;
}
var array1 = chunk(["a", "b", "c", "d"], 2);
var array2 = [
["a", "b"],
["c", "d"]
];
var equals = (array1.length == array2.length) && array1.every(function(element, index) {
return (element.length == array2[index].length) && element.every(function(element1, index1) {
return element1 === array2[index][index1];
});
});
alert(equals);
更多信息:如何使用Javascript比较两个数组相等?
这是最有效的解决方案:
function chunk(arr, size) {
var output = [];
var length = arr.length;
for (var x = 0, length = arr.length; x < length; x = x + size) {
output.push(arr.slice([x], x + size));
}
return output;
}
var array1 = chunk(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M'], 2);
var array2 = [
["A", "B"],
["C", "D"],
["E", "F"],
["G", "H"],
["J", "K"],
["L", "M"]
]
var equals = (array1.length == array2.length) && array1.every(function(element, index) {
return (element.length == array2[index].length) && element.every(function(element1, index1) {
return element1 === array2[index][index1];
});
});
alert(equals);
相关文章:
- 测试数组中每个项的内容
- 为什么当我在数组上测试regex时,它会返回false
- Jasmine spyOn使用伪造的返回数组测试功能
- 在JS数组中测试NaN
- 测试对象数组中是否存在值
- 润滑猴测试数组元素是否存在
- 如何测试包含未定义元素的数组的相等性
- 单元测试数组推送
- 茉莉花测试敲除可观察数组
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 在 JS 数组中的对象上进行测试
- 开玩笑:测试数组的随机位置
- 测试数组是否包含八个 3 键值中的任何一个 - 井字游戏
- JavaScript 字符串测试与正则表达式数组
- 测试数组中的任何项是否返回 true
- 使用 javascript/jQuery 测试函数的数组
- 在 JavaScript 中测试多维数组
- 测试数组中所有关键字的文本区域
- 测试数组中的数据是否具有Javascript值
- 使用量角器从数组测试中获取数据