添加相同值的Javascript循环
我希望你们能帮助我 我正在尝试以下方法:添加相同值的Javascript循环,javascript,loops,Javascript,Loops,我希望你们能帮助我 我正在尝试以下方法: 1000 + 100 = 1100 * 2 = 2200; 2200 + 100 = 2300 * 2 = 4600; 4600 + 100 = 4700 * 2 = 9400; 9400 + 100 = 9500 * 2 = 19000; ... 但我得到了流动的结果 1000 + 100 = 1100 * 2 = 2200; 2200 * 2 = 4400 4400 * 2 = 8800 ... 这些值由用户输入,但我在示例中使用了静态值 我有
1000 + 100 = 1100 * 2 = 2200;
2200 + 100 = 2300 * 2 = 4600;
4600 + 100 = 4700 * 2 = 9400;
9400 + 100 = 9500 * 2 = 19000;
...
但我得到了流动的结果
1000 + 100 = 1100 * 2 = 2200;
2200 * 2 = 4400
4400 * 2 = 8800
...
这些值由用户输入,但我在示例中使用了静态值
我有以下代码:
var generate = function generate(rate){
var array = [];
s=0;
for (var i = 0; i < 10; i++){
s =+ 100;
array.push([
(parseInt(1000) + 100) * Math.pow(2, i),
]);
}
return array;
}
var generate=函数生成(速率){
var数组=[];
s=0;
对于(变量i=0;i<10;i++){
s=+100;
array.push([
(parseInt(1000)+100)*数学功率(2,i),
]);
}
返回数组;
}
听起来像是你想要一个函数,它加上100,加倍,然后递归调用自己一个固定的次数
此函数将运行10次并输出最终答案:
函数add100andDouble(num,运行时){
if(运行时==0)返回num;
返回add100andDouble((num+100)*2,运行时-1);
}
$(函数(){
var number=parseFloat(提示(“输入一个数字”);
警报(add100和double(数字,10));
});代码>
var generate=函数生成(速率){
var数组=[];
s=0;
对于(变量i=0;i<10;i++){
s=速率+(数组[i-1]?数组[i-1]:1000);
阵列。推送(s*2);
}
返回数组;
}
控制台日志(生成(100))
我建议使用函数f(x)
来计算新值。它使代码的排列更加清晰。
函数f(x){
返回(x+100)*2;
}
var i=0,
x=1000,
数组=[];
对于(i=0;i<10;i++){
推送(x);
x=f(x);
}
write(“”+JSON.stringify(数组,0,4)+“”)代码>递归在其他解决方案上有其优点,但对于这种情况,我将使用普通的旧for循环
假设rate
是起始编号,返回值为固定的10值系列:
函数生成(速率){
var系列=[];
对于(var i=0;i<10;i++){
系列推送(速率=((速率+100)*2));
};
返回序列;
}
如果需要,可以轻松修改以发送序列长度。parseInt(1000)
与1000
完全相同。不需要调用parseInt()
。而且,它是+=
,而不是=+
。编辑哦,等等看,1000
是“示例的静态值”。很公平。你能更清楚地描述你的投入和预期产出吗?你期望的是一个数字数组还是一个数字?你使用的是Math.pow(2,i)
但是你发布的示例公式中没有提到任何关于指数的内容。这需要jQuery。这个答案的哪一部分需要jQuery?这个$(function(){…})
包装器。那么就使用window.onload=function(){…}
这真的很难吗?或者把它放在主体的底部。为什么它需要放在主体的底部,或者用$()ow window.onload包装?完全不依赖于DOM就绪性
function generate(rate) {
var series = [];
for(var i = 0; i < 10; i++) {
series.push(rate = ((rate + 100) * 2));
};
return series;
}