javascript - 数组作为参数传递问题

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

最佳答案

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

关于javascript - 数组作为参数传递问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254497/

相关文章:

javascript - 为什么这个 JavaScript 函数在网站首次加载时计算不正确,但之后可以正常工作?

javascript - 如何仅使用 css 或 jquery 自动播放轮播

javascript - Angular JS 路由不起作用(简单示例)

javascript - 如何使用 vue.js 中的单击事件从数据表中删除行而不干扰计算函数

javascript - iOS 7 类似 jQuery Mobile 的页面转换

javascript - babeljs 类在构造函数中静态

javascript - 如何打开源api

javascript - JavaScript花絮如何将远程小部件插入到页面上?

javascript - 从隐藏值创建 Javascript 数组

javascript - 在 jQuery 中用递增的 id 包裹嵌套的 <div> 元素