JS 循环将每个值递增 2

JS loop increment each value by 2

有没有办法每次将循环的每个结果递增2?所以它应该将值增加 2,然后 4,然后 6...

所以如果第一个结果是2,应该是2*2=4 但是第二个结果应该增加4:2*4=8

这是循环:

function setDatePosition(timelineComponents, min) {
    for (i = 0; i < timelineComponents['timelineDates'].length; i++) { 
        var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),
            distanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;
        timelineComponents['timelineEvents'].eq(i).css('left', (distanceNorm*min)+'px');
    }
}

目前,第一个结果是left:120px,第二个结果是left:180px。

我想达到: 第一个结果 + 20px: 140px

第二个结果 + 40px: 220px

第三个结果+60px...以此类推

我相信你的 20px 来自 min? 如果是这种情况,您只需要在每次迭代后增加 min 即可。 min += 20;

function setDatePosition(timelineComponents, min) {
    for (i = 0; i < timelineComponents['timelineDates'].length; i++) { 
        var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),
            distanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;
        timelineComponents['timelineEvents'].eq(i).css('left', (distanceNorm*min)+'px');
        min += 20;
    }
}

您可以在每次迭代时将 distanceNorm 乘以 i+1

function setDatePosition(timelineComponents, min) {
    for (i = 0; i < timelineComponents['timelineDates'].length; i++) { 
        var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),
            distanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;
        timelineComponents['timelineEvents'].eq(i).css('left', (distanceNorm*min*i+1)+'px');
    }
}