繁体   English   中英

Javascript array.push()特殊代码

[英]Javascript array.push() special code

嗨,我看不到我的代码中的错误。

我只想将一些计算数字添加到我的数组中。

只需查看名为“ numberOfarrays”的数组即可。 为什么输出看起来像这样:

5050,2550,25,2050,25,20,1450,25,20 ...

而不像我想的那样:

50,25,20,14 ....

我真的很困惑。

我的代码:

<script>
    var a = [2,4,6,8,10,12,14,16,18,20];
    var sum= 0;//110
    for (var i = 0; i < a.length; i ++) {
        sum = sum+a[i]
    }
    alert(sum);
    var tmp = 100/sum;//0,909..
    alert(tmp);
    var arryPlaetze = [];

    for (var i = 0; i < a.length; i ++) {// 10 durchläufe
        arryPlaetze.push(Math.round(tmp*a[i])); 
    }
    var wheel =[];
    var lengthWheel = 100;
    var numberOfarrays =[];
    alert("numberOfarrays"+ numberOfarrays.toString());
    alert(arryPlaetze[1]);

    //Problem
    for (var i = 0; i < arryPlaetze.length; i++) {
        alert("zahler: "+i);
        alert("test "+Math.round(lengthWheel/arryPlaetze[i]));//50
        var tmp = Math.round(lengthWheel/arryPlaetze[i]);
        numberOfarrays.push(tmp);// fail why 5050 not 50,25


        document.write(numberOfarrays.toString());

    }

</script>

您可以将代码放入html中以使其非常容易运行。

将您的document.write()移出循环。 现在它每次都在打印数组,这导致

(50)(50,25)(50,25,20)(50,25,20,14)

但是由于没有() ,所以它只打印为

505025502520...

就像Mike C所说的那样,如果使用console.log()而不是document.write()更好地进行日志记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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