Javascript 使用用户输入填充多维数组
我试图用用户输入填充多维数组。我有这个功能:Javascript 使用用户输入填充多维数组,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我试图用用户输入填充多维数组。我有这个功能: 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 }
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
}
当我调用函数时:
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' ] ] ]
您发布的代码工作正常,下面给出了输出(我用一个随机字符串替换了输入)。但是,您的数组在后面应该是这样的,因为您的示例中的级别太浅了(请记住,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' ] ] ]
在两个循环内使用prompt,因此如果metrix为3x3,则会提示您插入数据9次,因此我删除了额外的循环。
试试这个
var buildIt=function(行、列){
变量a=[]
变量输入
对于(变量i=0;i
console.log(window.buildIt(3,3));
您正在两个循环中使用prompt,因此如果metrix为3x3,它将提示您插入数据9次,因此我删除了额外的循环。
试试这个
var buildIt=function(行、列){
变量a=[]
变量输入
对于(变量i=0;i
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);
var buildIt=函数(行){
变量a=[]
变量输入
对于(变量i=0;i|
您不需要传递列数,只需要传递行数并删除内部循环,因为您只需要针对行数执行代码。更新后的代码
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);
var buildIt=函数(行){
变量a=[]
变量输入
对于(变量i=0;i|
3x3是9。循环次数超出预期3x3是9。循环次数超出预期