Я пытаюсь создать окончательный массив, который содержит суммированные числа объектов с месяцами и объединит те же месяцы и суммирует их itemCount.Не удается найти ошибку в моем JS-коде
Z массив из консоли Chrome:
0: Object
itemCount: 6
month: "Aug"
1: Object
itemCount: 0
month: "Jun"
2: Object
itemCount: 0
month: "Sep"
3: Object
itemCount: 0
month: "Sep"
и код, который я написал, чтобы подвести ITEMCOUNT месяцы и слияния, если есть одни и те же месяцы:
let counterCurrItem = 0, month,
finalArr = [], itemCount = 0
for (i = 0; i < Z.length; i++) {
month = Z[i].month
itemCount = Z[i].itemCount
if (Z[i + 1] !== undefined) {
if (month == Z[i + 1].month) {
counterCurrItem = counterCurrItem + itemCount
} else {
finalArr.push([counterCurrItem, month])
}
} else {
finalArr.push([counterCurrItem, month])
}
}
Однако окончательный массив не удерживая ожидаемые значения, я ожидаю, что он будет иметь свой первый массив как [6, 'Aug], но это [0,' Aug '].
Итак, где проблема в моем коде?
Некоторые примечания: месяцы всегда сортируются в алфавитном порядке, а массив Z всегда содержит более одного объекта.
вы пробовали использовать отладчик? –
Можете ли вы опубликовать скрипку с результатом (с ошибкой) и ожидаемым результатом? – piotrwest
Почему вы ожидаете этого результата? Я не смотрю на код. Что это значит, что 'counterCurrItem' будет' 6'? – Pointy