Добрый день.
У меня задача, просуммировать массивы внутри массива. Просуммировать нужно последний элемент вложенного массива, если предыдущие элементы массива между собой равны.
Пробовал, код ниже, но не получается. Подскажите по возможности, как можно сделать.
На входе массив:
let arrStart = [
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Второе значение', 'Четвертое значение значение', 1],
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Пятое значение значение', 'Третье значение', 1],
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Пятое значение значение', 'Третье значение', 1],
['Первое значение', 'Третье значение', 'Второе значение', 1]
]
Должно получиться:
arrFinish = [
['Первое значение', 'Второе значение', 'Третье значение', 3],
['Первое значение', 'Второе значение', 'Четвертое значение значение', 1],
['Первое значение', 'Пятое значение значение', 'Третье значение', 2],
['Первое значение', 'Третье значение', 'Второе значение', 1]
]
Пробовал по разному, один из последних вариантов -
function test() {
let arrStart = [
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Второе значение', 'Четвертое значение значение', 1],
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Пятое значение значение', 'Третье значение', 1],
['Первое значение', 'Второе значение', 'Третье значение', 1],
['Первое значение', 'Пятое значение значение', 'Третье значение', 1],
['Первое значение', 'Третье значение', 'Второе значение', 1]
]
let arrFinish = []
arrStart.forEach(function (el, index) {
if (index == 0) {
arrFinish.push(el)
}
else {
for (let i = 0; i < arrFinish.length; i++) {
let elA = arrFinish[i]
if (elA[0] == el[0] && elA[1] == el[1] && elA[2] == el[2]) {
elA[3] = elA[3] + el[3]
break
}
else {
arrFinish.push(el)
break
}
}
}
})
}