繁体   English   中英

用用户输入填充多维数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM