我向上帝发誓这是有效的,我知道这是因为我的考试已经过了一段时间......现在却没有。请参见下面的错误屏幕。
describe('', () => {
let newBoard;
beforeEach(() => {
newBoard = new board();
});
it('', () => {
for(let row in newBoard){
for(let column in row){
newBoard[row][column].should.equal("");
}
}
});
});
board.js
module.exports = function(){
return [["", "", ""],
["", "", ""],
["", "", ""]];
};
答案 0 :(得分:0)
首先是一些家务用品。你有一个for-in循环,而不是for循环。 for-in循环是人们学习JavaScript的常见错误来源,因为它看起来像你想要的那样,但它不是为了迭代数组。它的意思是迭代对象的属性。
您正在寻找的新ES6循环称为for-of loop。它的工作是遍历数组中的项目。在您的示例中,尝试更改代码以使用for-of循环。
it('', () => {
for(let row of newBoard){
for(let column of row){
column.should.equal("");
}
}
});
答案 1 :(得分:0)
虽然@RobW的评论应该是问题:for (let column in newBoard[row]).
我想添加一个建议:由于您使用的是ES6,因此您可能希望使用for of
循环:
it('', () => {
for(let row of newBoard){
for(let cell of row){
cell.should.equal("");
}
}
});
答案 2 :(得分:-1)
在你的内循环中,你要求它为每个项目创建一个变量column
作为一个数字的对象。 for in
构造为您提供newBoard
数组中每个项目的索引。
内部循环需要在为newBoard
指定的索引处访问数组,以便您的代码变为for(let column in newBoard[row])