Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用用户输入填充多维数组_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

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;iconsole.log(window.buildIt(3,3));
您正在两个循环中使用prompt,因此如果metrix为3x3,它将提示您插入数据9次,因此我删除了额外的循环。 试试这个

var buildIt=function(行、列){
变量a=[]
变量输入
对于(变量i=0;iconsole.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。循环次数超出预期