我有2dim数组设置为全局变量,其中行数为0,行数为1。 但是,当我将它作为参数传递给函数时,它的大多数值都会修改为未定义,但保留了一个奇怪的值!?!
function formElements(howMany){
elArr = [];
var w; var surface;
for(var j=0; j<howMany; j++){
w = randomNumber(1,200);
surface = w*randomNumber(1,100);
elArr[0] =[j];
elArr[1] =[j];
elArr[0][j]=surface;
elArr[1][j]='_'+j;
}
aFunction(elArr,...other parameters....); //in this function I receive array with these undefined values I mentioned above!!!
}
function randomNumber(x,y) {
return Math.floor((Math.abs(y - x) + 1) * Math.random()) + Math.min(x, y);
}
有人能告诉我什么是错的吗? 10x和BR
答案 0 :(得分:4)
对j
的引用使它看起来像是在循环中。在这种情况下,我认为这不是你想要的:
elArry[0] = [j];
这将elArray[0]
的值设置为具有单个元素j
的数组。如果你在循环中这样做,那么你每次都会用一个带有单个元素的新数组覆盖数组。
编辑:
现在您已经发布了经过验证的完整循环。你可能想要这样的东西:
function formElements(howMany){
elArr = [[],[]];
for(var j=0; j<howMany; j++){
elArr[0][j]=surface;
elArr[1][j]='_'+j;
}
aFunction(elArr,...other parameters....);
}