-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) / 2);
        }
        startingIncomeArr[i] = startingIncome;
    }

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

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

任何关于我哪里出错的想法将不胜感激。

编辑:

看来我的总和是关闭的,我没有分割整个总和。这是更正后的代码:

    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);
4

1 回答 1

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每次通过循环进行评估。

于 2013-08-12T15:36:03.007 回答