我该怎么做这个数组?

时间:2013-06-03 17:09:54

标签: javascript arrays trigonometry

我试图根据三角形一半的帷幕点找出房屋形状的长度。例如,每当我沿着三角形的长边向下移动时,我每次测量的时间都会比上一次更短。我正在努力找到适合我的代码。我知道第一次测量将等于从地板底部到三角形峰值的高度。然后,每当它向三角形移动三英尺时,它将减去9英寸。但是当它达到零时我需要它停止。我已经设置了这样的数组。

var endwallPanelLength=[]
endwallPanelLength[1]=peakHeight;
endwallPanelLength[2]=peakHeight-peakHeightDecrease;
endwallPanelLength[3]=endwallPanelLength[2]-peakHeightDecrease;
endwallPanelLength[4]=endwallPanelLength[3]-peakHeightDecrease; 

我知道我还有其他事情需要解决整个代码,但我怎样才能更有效地在数组中定义这些测量。

peakHeightDecrease只是斜率的3 *

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

var endwallPanelLength = [peakHeight];
var i = 0;
while (endwallPanelLength[i] >= peakHeightDecrease) {
    endwallPanelLength.push(endwallPanelLength[i] - peakHeightDecrease);
    i++;
}

BTW,数组索引通常从0开始。

另一种方法是将peakHeight除以减少:

var repetitions = Math.floor(peakHeight/peakHeightDecrease);
var endwallPanelLength = [];
for (var i = 0; i <= repetitions; i++) {
    endwallPanelLength.push(peakHeight - peakHeightDecrease*i);
}