Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加相同值的Javascript循环_Javascript_Loops - Fatal编程技术网

添加相同值的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;
}