在C编程中从用户那里获取多维数组的值,我们可以使用两个for循环和scanf来获取值。当我在节点中以类似的方式尝试时,javascript尝试失败了
我试过这样的东西:
var readlineSync = require('readline-sync')
var arr = new Array();
console.log('enter aray values');
for (let i = 0; i < 6; i++){
for (let j = 0; j < 6; j++){
arr[i][j] = readlineSync.questionInt('')
}
}
console.log(arr);
我得到一个错误说:
arr[i][j] = readlineSync.questionInt('')
^
TypeError: Cannot set properties of undefined (setting '0')
您不能在未定义的上设置属性。
var readlineSync = require('readline-sync')
var arr = new Array();
console.log('enter aray values');
for (let i = 0; i < 6; i++) {
for (let j = 0; j < 6; j++) {
arr[i] = [];
arr[i][j] = readlineSync.questionInt('')
}
}
console.log(arr);
错误描述arr[i]
是undefined
,这意味着不能在其上设置任何属性。
多维数组的每个维度都应该在循环的每次迭代中创建:
for (let i = 0; i < 6; i++) {
// 👇 initialize the dimension as an empty array
arr[i] = new Array();
for (let j = 0; j < 6; j++) {
arr[i][j] = readlineSync.questionInt('')
}
}