我正在尝试使用用户输入填充多维数组。我有这个功能:
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
。
答案 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