使用用户输入填充多维数组

时间:2016-08-19 15:17:54

标签: 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
}

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],则会记录第一行中的所有元素而不是f处的元素,该元素应为foo

3 个答案:

答案 0 :(得分:1)

您发布的代码有效,输出如下(我为输入替换了一个随机字符串)。但是,您的数组之后应该看起来像这样,因为您的示例中的某个级别太浅(请记住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' ] ] ]

答案 1 :(得分:1)

你在两个循环中使用提示,所以如果你有一个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));

答案 2 :(得分:1)

您不需要传递列数,只需传递行并删除内部循环,因为您只需要执行行数的代码。更新的代码

MPI_Bcast