JavaScript 读取数组 - 无法读取未定义的属性 '0'

标签 javascript arrays undefined

当我运行下面的代码时,我在浏览器控制台中收到错误 其中内容为:未捕获类型错误:无法读取未定义的属性“0”

尽管我对错误的性质很好奇,但代码确实打印了我想要的内容。 我已将输出粘贴到本文底部。

var chessBoard = [];
for(let i = 0; i < 8; i++) {
   chessBoard[i] = [];
   for(let j = 0; j < 8; j++) {
   chessBoard[i][j] = (i + j)% 2 === 0 ? 'Black' : 'White';
}} // populate a 2 dimensional array with colors representing a chess board.

for(let i = 7; i => 0; i--) {
    let str_horizontal = '';
    for (let j = 0; j < 8; j++) {
        str_horizontal += chessBoard[i][j];
    }
    console.log(str_horizontal);
}

白色黑色白色黑色白色黑色白色黑色 VM116:13 黑色白色黑色白色黑色白色黑色白色 VM116:13 白色黑色白色黑色白色黑色白色黑色 VM116:13 黑色白色黑色白色黑色白色黑色白色 VM116:13 白色黑色白色黑色白色黑色白色黑色 VM116:13 黑色白色黑色白色黑色白色黑色白色 VM116:13 白色黑色白色黑色白色黑色白色黑色 VM116:13 黑色白色黑色白色黑色白色黑色白色 VM116:11

未捕获类型错误:无法读取未定义的属性“0” 于:11:40

我已经为此苦苦挣扎了一段时间,但进展甚微。 我看不到问题所在。感谢您的帮助,谢谢。

最佳答案

在 for 循环中,您使用的是箭头函数,而不是 => 而是 >=

var chessBoard = [];
for(let i = 0; i < 8; i++) {
   chessBoard[i] = [];
   for(let j = 0; j < 8; j++) {
   chessBoard[i][j] = (i + j)% 2 === 0 ? 'Black' : 'White';
}} // populate a 2 dimensional array with colors representing a chess board.

for(let i = 7; i >= 0; i--) {
    let str_horizontal = '';
    for (let j = 0; j < 8; j++) {
        str_horizontal += chessBoard[i][j];
    }
    console.log(str_horizontal);
}

关于JavaScript 读取数组 - 无法读取未定义的属性 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281158/

相关文章:

javascript - 如何在过滤数组时忽略某些对象

Ruby:while 循环之前和之后声明变量的区别?

ruby-on-rails - Heroku , ActionView::Template::Error (未定义方法 `tags' 用于 #<Post:0x000000041424a0>):

Java 比较数组值并找到最接近的

Javascript拆分正则表达式转义分隔符

javascript - Html 自定义属性创建和验证

javascript - 通过从 AJAX 响应获取值来更改元素文本

ajax - 如何将 int 数组从 ajax 发送到 c# mvc?

ios - 条形图 Swift 的多种颜色一个在另一个之上

javascript - Socket.IO:断开连接时的 XHR 轮询延迟