我正在建立一个动态的svg calendar bar。为了计算条形图需要多少个划分(以月为单位),我将条形图的总宽度除以以月为单位的日期差异,以确定每个划分中应有多少像素。

基本示例:There are 3 months between the two provided dates; The calendar bar is 935 pixels wide. 935/3(rounded) = 312. Each section of the calendar bar should be approx 312 pixels wide.

现在解决问题。我正在使用一个基本的循环来运行数学并将值推入javascript数组。哪个工作正常。我想做的是通过将数组中的每个后续值添加到先前的值来增加它。

示例:1st value is 312, second value is 614 (312+312), and the final value is 936(312+614) or (312+312+312) however the math has to work.

由于某种原因,我无法为自己的一生而想出如何使它以这种方式推动价值。

这是我目前正在使用的代码。 (请注意,某些正在更新的变量可以在脚本的其他地方声明)

function divideCalendarBar(){

    var calBarWidth = 935;
    var calBarDivisions = Math.round(calBarWidth/cb_dateDiff);
    var leftPositions = calBarDivisions;
    var leftPositionsArray = new Array();

    for (var i = 1; i < cb_dateDiff; i++) {
        leftPositionsArray.push(leftPositions);
    };

    cb_leftPositionsArray = leftPositionsArray;
}


您的好朋友可能有任何想法,我们将不胜感激!

最佳答案

第一个值为312,第二个值为614(312 + 312),最终值为936(312 + 614)或(312 + 312 + 312)


因此,您可以说您的第一个值是312 x 1,第二个值是312 + 312 = 312 x 2,第三个值是312 + 312 + 312 = 312 x 3

由于您已经有一个循环,索引的范围是1到(大概)3:

for (var i = 1; i < cb_dateDiff; i++) {
    leftPositionsArray.push(leftPositions * i);
};


应该管用

08-25 11:08