[英]Populating a multidimensional array with user input
我正在尝试用用户输入填充多维数组。 我有这个功能:
var buildIt = function(row, col){
var a = []
var input
for(var i = 0; i < row; i++){
a[i] = []
input = prompt('Input: ')
for(var j = 0; j < col; j++){
a[i][j] = input.split('')
}
}
return a
}
window.buildIt(3,3)
我要这样做,以便提示用户有行的次数。 如果用户创建具有三行的矩阵,则应提示用户输入三遍。 我想将此输入存储在每一行中。 例如,用户输入foo
bar
baz
数组a
应该像这样:
a = [
['f','o','o'],
['b','a','r],
['b','a','z]
]
当我调用该函数时:
var board = buildIt(3,3)
console.log(board[0][0])
它记录第一行中的所有元素,而不是记录在点[0][0]
处的元素;如果用户输入foo
,则该元素应为f
。
您发布的代码有效,输出在下面给出(我用随机字符串代替了输入)。 但是,您的数组之后实际上应该像这样,因为您的示例太简单了(请记住,为a[i][j]
分配了.split('')
的结果,该结果会在其中返回一个字符数组)在这种情况下,将存在一个将作为字符的a[i][j][0]
。
> buildIt(3,3)
[ [ [ 'G', 'C', 'T', 'J', 'O' ],
[ 'S', 'Q', 'S', 'B', 'G' ],
[ 'D', 'E', 'U', 'P', 'Y' ] ],
[ [ 'D', 'B', 'I', 'Z', 'Q' ],
[ 'G', 'M', 'U', 'N', 'R' ],
[ 'D', 'T', 'I', 'A', 'V' ] ],
[ [ 'J', 'L', 'O', 'H', 'V' ],
[ 'U', 'C', 'D', 'B', 'H' ],
[ 'U', 'C', 'X', 'E', 'W' ] ] ]
您正在两个循环内使用提示,因此,如果您的metrix为3x3,则它将提示您9次以插入数据,因此我删除了多余的循环。 尝试这个
var buildIt = function(row, col){ var a = [] var input for(var i = 0; i < row; i++){ input = prompt('Input: ') a[i] = input.split('') } return a } console.log(window.buildIt(3,3));
您不需要传递列数,只需传递行数并删除内部循环,因为您只需要执行行数代码即可。 更新的代码
var buildIt = function(row){
var a = []
var input
for(var i = 0; i < row; i++){
input = prompt('Input: ');
a[i] = input.split('');
}
return a;
}
buildIt(3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.