Рассчитать сумму массива - PullRequest
0 голосов
/ 20 ноября 2018

Я создал массив, используя следующий JavaScript:

for (i = 0; i < numOfPeriodsCost; i++) {
    esclatedPrice *= (1 + annualElecIncrease)
    rateArray.push(esclatedPrice);
    annualCostA = consumptionA * rateArray[i]
    console.log("annualCostA= " + annualCostA);
}

Для контекста:

var numOfPeriodsCost = 10;
var annualElecIncrease = 0.1;
var consumptionA = 520;

Консоль регистрирует следующее для AnnualCostA:

enter image description here

Как бы я сделал еще один шаг и вычислил сумму массива?

Спасибо

Ответы [ 7 ]

0 голосов
/ 20 ноября 2018

Ниже приводится подход forEach:

let numbers = [1, 2, 3, 4];
let sum = 0;
numbers.forEach((item, index)=>{sum= sum + item;});
document.write("Sum: " + sum);

Тест: ссылка

Док: ссылка

0 голосов
/ 20 ноября 2018

Я думаю, что с вашим годовым вычислением что-то не так, должно ли оно быть consumption + (years*increase*consumption)?

. Вы можете сопоставить массив 0-numOfPeriodsCost с годовыми затратами и уменьшить его до массива, содержащего затраты за этот год.и всего до этого года.Затем отобразите эти значения в объекты, содержащие итоги и год:

const numOfPeriodsCost = 10;
const annualElecIncrease = 0.1;
const consumptionA = 520;

console.log(
  [...new Array(numOfPeriodsCost)]
    .map(
      (_, period) =>
        consumptionA +
        period * annualElecIncrease * consumptionA,
    )
    .reduce(
      ([sum, result], item) => [
        sum + item,
        result.concat([[sum + item, item]]),
      ],
      [0, []],
    )[1]
    .map(([total, year]) => ({ total, year })),
);
0 голосов
/ 20 ноября 2018

Вы можете использовать Array.prototype.reduce () :

var sumOfRateArray = rateArray.reduce((a, c) => a + c, 0);

Код:

const rateArray = [12.100000000000001,13.310000000000002,14.641000000000004,16.105100000000004,17.715610000000005,19.487171000000007,21.43588810000001,23.579476910000015,25.937424601000018];
const sumOfRateArray = rateArray.reduce((a, c) => a + c, 0);

console.log(sumOfRateArray);
0 голосов
/ 20 ноября 2018
var numOfPeriodsCost = 10;
var annualElecIncrease = 0.1;
var consumptionA = 520;

let sum = 0;

for (i = 0; i < numOfPeriodsCost; i++) {
  esclatedPrice *= (1 + annualElecIncrease);
  rateArray.push(esclatedPrice);
  annualCostA = consumptionA * rateArray[i]
  console.log("annualCostA= " + annualCostA);
  sum += annualCostA;
}

console.log('sum', sum);
0 голосов
/ 20 ноября 2018

Использование Array.prototype.reduce () в переменной rateArray после цикла:

var rateArray = [
    936,
    1029.6,
    1132.56
];

var arraySum = rateArray.reduce((total, e) => total + e);

console.log(arraySum)
0 голосов
/ 20 ноября 2018

В вашем цикле вам просто нужно добавить переменную sum, которая будет добавлять значение annualCostA в каждой итерации следующим образом:

var sum = 0;
for (i = 0; i < numOfPeriodsCost; i++) {
    esclatedPrice *= (1 + annualElecIncrease)
    rateArray.push(esclatedPrice);
    annualCostA = consumptionA * rateArray[i]
    sum += annualCostA // add the annualCostA value in each iteration 
    console.log("annualCostA= " + annualCostA);
}
console.log(sum); //total sum
0 голосов
/ 20 ноября 2018

Добавить переменную суммы перед циклом let sum=0;

Добавить элемент, который вы хотите суммировать, внутри цикла sum+= your_element;

Распечатать результат console.log("Sum= "+sum);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...