嘿伙计们,我的代码没有看到错误。
我只是想在我的数组中添加一些计算数字。
只需查看名为“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中以便轻松运行。
答案 0 :(得分:6)
将document.write()
移到您的循环之外。现在它每次都打印数组,结果是
(50)(50,25)(50,25,20)(50,25,20,14)
但由于没有()
,因此它只是打印为
505025502520...
另外,正如Mike C所说,如果您使用console.log()
代替document.write()
,那么记录会更好。