Показать сообщение отдельно
  #3 (permalink)  
Старый 09.11.2021, 09:54
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

for (let index = 1; index < period; index++) {
    graph[index] = {
    date: dateStart.setMonth(dateStart.getMonth() + 1),
    sum: graph[index - 1].sum - graph[index -1].telo,
    telo: olSumR / period,
    com: olSumR / period * (pr/100),
    allP: olSumR / period + (olSumR / period * (pr/100))
  }

Непонятно, что у вас dateStart, olSumR...
Не видно, что бы они менялись.
Значит telo, com, allP будут везде одинаковые.
Как устанавливаются значения для graph[0]?

Вот это ошибка, если date должно быть датой, а не числом миллисекунд:
date: dateStart.setMonth(dateStart.getMonth() + 1),

setMonth устанавливает значение в объекте Date с которым она вызвана. Новый объект не создается. Т.е каждый раз будет меняться dateStart, все поля date будут ссылаться на него. Т.е. date у всего массива будет одинаковая.
Надо так

date: new Date(dateStart.getTime().setMonth(dateStart.getMonth() + 1))

Суммировать с помощью reduce

let sum = graph.reduce ((a, g) => a+g.allP, 0)

Последний раз редактировалось voraa, 09.11.2021 в 10:22.
Ответить с цитированием