Javascript array.push() 特殊代码

标签 javascript html arrays

嘿伙计们,我没有看到我的代码有问题。

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

只需查看名为“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(),那么日志记录会更好。

关于Javascript array.push() 特殊代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618908/

相关文章:

javascript - 加载外部文件然后从文件运行函数

html - 为什么导航和标题 div 之间存在间隙/空间?

javascript - 将数组拆分为无序列表?

arrays - 基于循环的VBA重新调整数组尺寸

javascript - 如何在javascript中将大的负科学记数法数字转换为十进制记数法字符串?

javascript - Node.js 和 Express - 将 JSON 对象从 SoundCloud API 发送到前端使其成为字符串

javascript - 如何获取canvas中图像的Id

javascript - 如何使用javascript查找多维数组中特定元素的行和列

javascript - Angular - 将复选框从 ng-repeat 绑定(bind)到 ng-model

javascript - 为什么我不能创建具有多个子节点的 ParentNode?