为什么这个简单的 javascript 数组会失败?
Why does this simple javascript array fail?
我变老了,或者只是生锈了,或者两者兼而有之,但是当我把它带到这里时,我羞愧地低下了头,因为一定有一些非常非常简单的东西我错过了。
我正在使用表格中的 Google Apps 脚本编写这篇文章。
为什么当我达到 j = 2 时就失败了?我已经尝试以我能想到的各种不同方式声明数组,没有任何东西超过 j=2。我错过了什么?我知道这很愚蠢。
function myFailure() {
for (var j = 0; j < 10; j++) {
for (var k = 0; k < 31; k++) {
var item = 'Item '+k;
let thisItem = new Array([],[]);
thisItem[j][k] = item; //the problem is happening here, once j=2 but why
console.log(j,k);
console.log(thisItem[j][k]);
}
}
}
myFailure();
试试这个:
function myFailure() {
let thisItem = [];
for (var j = 0; j < 10; j++) {
thisItem[j] = []
for (var k = 0; k < 31; k++) {
thisItem[j][k] = `Item [${j}][${k}]`
console.log(thisItem[j][k]);
}
}
}
部分执行日志
10:04:00 AM Info Item [0][0]
10:04:00 AM Info Item [0][1]
10:04:00 AM Info Item [0][2]
10:04:00 AM Info Item [0][3]
10:04:00 AM Info Item [0][4]
10:04:00 AM Info Item [0][5]
我变老了,或者只是生锈了,或者两者兼而有之,但是当我把它带到这里时,我羞愧地低下了头,因为一定有一些非常非常简单的东西我错过了。
我正在使用表格中的 Google Apps 脚本编写这篇文章。
为什么当我达到 j = 2 时就失败了?我已经尝试以我能想到的各种不同方式声明数组,没有任何东西超过 j=2。我错过了什么?我知道这很愚蠢。
function myFailure() {
for (var j = 0; j < 10; j++) {
for (var k = 0; k < 31; k++) {
var item = 'Item '+k;
let thisItem = new Array([],[]);
thisItem[j][k] = item; //the problem is happening here, once j=2 but why
console.log(j,k);
console.log(thisItem[j][k]);
}
}
}
myFailure();
试试这个:
function myFailure() {
let thisItem = [];
for (var j = 0; j < 10; j++) {
thisItem[j] = []
for (var k = 0; k < 31; k++) {
thisItem[j][k] = `Item [${j}][${k}]`
console.log(thisItem[j][k]);
}
}
}
部分执行日志
10:04:00 AM Info Item [0][0]
10:04:00 AM Info Item [0][1]
10:04:00 AM Info Item [0][2]
10:04:00 AM Info Item [0][3]
10:04:00 AM Info Item [0][4]
10:04:00 AM Info Item [0][5]