数组作为参数问题传递

时间:2011-06-06 15:41:18

标签: javascript

我有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

1 个答案:

答案 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....);
}