使用两个总和填充数组

时间:2013-08-12 15:31:47

标签: javascript arrays loops sum

我希望有人可以告诉我如何基于两个不同的总和来填充数组。

    var startingIncome = 30000;
    var startingIncomeArr = [];

    startingIncomeArr[0] = startingIncome;
    for (var i = 1; i < 100; i++) {

        if (i <= 45) {
            startingIncome += (startingIncome / 100 * 3);
        }else {
            startingIncome += (((startingIncome / 100) * 3) / 2);
        }
        startingIncomeArr[i] = startingIncome;
    }

基本上我希望在索引达到45之后填充数组,直到索引为45,然后在索引达到45之后更改为另一个总和(除以2)。

由于某种原因,总和在达到45之后永远不会被除以2。

对于我出错的地方的任何想法都将不胜感激。

编辑:

似乎我的总和已经结束了,我没有将全部金额分开。这是更正后的代码:

    var startingIncome = 30000;
    var startingIncomeArr = [];

    startingIncomeArr[0] = startingIncome;
    for (var i = 1; i < 100; i++) {

        if (i <= 45) {
            startingIncome += (startingIncome / 100 * 3);
        }else {
            startingIncome += (startingIncome / 100 * 3);
            startingIncome /= 2;
        }
        startingIncomeArr[i] = startingIncome;
    }
    console.log(startingIncomeArr);

1 个答案:

答案 0 :(得分:1)

我会将其作为两个连续循环来完成:

var startingIncome = 30000;
var startingIncomeArr = [];
var i;

startingIncomeArr[0] = startingIncome;
for (i = 1; i <= 45; i++) {
    startingIncome += (startingIncome / 100 * 3);
    startingIncomeArr[i] = startingIncome;
}
for (i = 46; i < 100; i++) {
    startingIncome += (((startingIncome / 100) * 3) / 2);
    startingIncomeArr[i] = startingIncome;
}

for语句本身可以清楚地看出逻辑涵盖了两个不同的范围。您还可以避免每次循环时都进行if评估。