Javascript 每n次跳过n项,增加n 1
这可能是一个奇怪的问题,因为我有一个解决方案(见下文),但我希望有人能向我展示一种更简洁或可读的方法: 我创建了一个输出以下数组的循环: [0,1,3,6,10,15,21,28,36,45,55,66,78,91] 数字之间的差距越来越大:Javascript 每n次跳过n项,增加n 1,javascript,Javascript,这可能是一个奇怪的问题,因为我有一个解决方案(见下文),但我希望有人能向我展示一种更简洁或可读的方法: 我创建了一个输出以下数组的循环: [0,1,3,6,10,15,21,28,36,45,55,66,78,91] 数字之间的差距越来越大: 1-0=1 3-1=2 6-3=3 10-6=4 … 91-78=13 等等 我创建了两个变量,step跟踪间隙大小,count跟踪间隙中的当前“位置”计数向下计数到零,然后将步长增加1 var output = []; var step = 0; v
1-0=1
3-1=2
6-3=3
10-6=4
…
91-78=13
step
跟踪间隙大小,count
跟踪间隙中的当前“位置”<代码>计数向下计数到零,然后将步长
增加1
var output = [];
var step = 0;
var count = 0;
for (var i = 0; i < 100; i++) {
if (count == 0){
step += 1;
count = step;
output.push(i);
}
count -= 1;
}
var输出=[];
var阶跃=0;
var计数=0;
对于(变量i=0;i<100;i++){
如果(计数=0){
步骤+=1;
计数=步长;
输出推力(i);
}
计数-=1;
}
您可以尝试以下方法:
var output = [];
var total = 0;
for (var i=1; i < 100; i++) {
output.push(total);
total += i;
}
var输出=[];
var合计=0;
对于(变量i=1;i<100;i++){
输出。推送(总);
总数+=i;
}
数字之间的间隔只是每一步增加一个,因此for循环应该能够跟踪此变化。您可以尝试以下方法:
var output = [];
var total = 0;
for (var i=1; i < 100; i++) {
output.push(total);
total += i;
}
var输出=[];
var合计=0;
对于(变量i=1;i<100;i++){
输出。推送(总);
总数+=i;
}
数字之间的间隔只是每一步增加一个,因此for循环应该能够跟踪此更改。您应该跳过无用的迭代。如果需要100个数字的序列,请使用
var output = [];
var step = 0;
for (var i = 0; i < 100; i++) {
step += i;
output.push(step);
}
所以你也可以这样做
var output = [];
for (var i = 0; i < 100; i++) {
output.push(i * (i+1) / 2);
}
var输出=[];
对于(变量i=0;i<100;i++){
输出推力(i*(i+1)/2);
}
您应该跳过无用的迭代。如果需要100个数字的序列,请使用
var output = [];
var step = 0;
for (var i = 0; i < 100; i++) {
step += i;
output.push(step);
}
所以你也可以这样做
var output = [];
for (var i = 0; i < 100; i++) {
output.push(i * (i+1) / 2);
}
var输出=[];
对于(变量i=0;i<100;i++){
输出推力(i*(i+1)/2);
}
您可以使用此解决方案保存total helper变量:
var output = [0]
for (var i = 1; i < 14; i++) {
output.push(output[i - 1] + i)
}
console.log(output) // [ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91 ]
这里不需要额外的计数器变量。我使用concat
,因为它返回递归调用所需的数组,其中push
返回新的数组长度。concat
的参数是一个数组,其中有一个元素要添加新值
尝试使用此解决方案保存total helper变量:
var output = [0]
for (var i = 1; i < 14; i++) {
output.push(output[i - 1] + i)
}
console.log(output) // [ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91 ]
这里不需要额外的计数器变量。我使用concat
,因为它返回递归调用所需的数组,其中push
返回新的数组长度。concat
的参数是一个数组,其中有一个元素要添加新值
试试看这似乎更适合-不确定这是一个多么好的问题,我不知道它的存在!这似乎更适合-不确定这是一个很好的问题,不知道存在!很好,我知道我把它复杂化了。非常简单的解决方案。很好,我知道我把它复杂化了。非常简单的解决方案。