Имеется массив объектов
[
{type: 'credit', currentDept: 23}
{type: 'credit', currentDept: 21}
{type: 'credit', currentDept: 40}
{type: 'hsc', currentDept: 83}
{type: 'alimony', currentDept: 10}
{type: 'alimony', currentDept: 51}
]
Как можно сделать из этих исходных данных массив объектов такого вида?
[
{type: 'credit', currentDept: 84}
{type: 'hsc', currentDept: 83}
{type: 'alimony', currentDept: 61}
]
Функциональным подходом, и без побочных эффектов (типа изменения элементов исходного массива):
const arr = [
{type: 'credit', currentDept: 23},
{type: 'credit', currentDept: 21},
{type: 'credit', currentDept: 40},
{type: 'hsc', currentDept: 83},
{type: 'alimony', currentDept: 10},
{type: 'alimony', currentDept: 51},
];
let grouped = Object.entries(
arr.reduce((r, { type, currentDept:cd }) => ((r[type] = (r[type] || 0) + cd), r), {})
).map(([ type, currentDept ]) => ({ type, currentDept }));
console.log(grouped);
ES8+
var input = [
{type: 'credit', currentDept: 23},
{type: 'credit', currentDept: 21},
{type: 'credit', currentDept: 40},
{type: 'hsc', currentDept: 83},
{type: 'alimony', currentDept: 10},
{type: 'alimony', currentDept: 51}
];
function group(arr) {
var r1 = arr.reduce((r, el) => {
if (typeof r[el.type] == "undefined") {
r[el.type] = 0;
}
r[el.type] += el.currentDept;
return r;
}, {});
var r2 = [];
for (var key in r1)
r2.push({ type: key, currentDept: r1[key] });
return r2;
}
console.log(group(input));
Вот так можно:
let d = [
{type: 'credit', currentDept: 23},
{type: 'credit', currentDept: 21},
{type: 'credit', currentDept: 40},
{type: 'hsc', currentDept: 83},
{type: 'alimony', currentDept: 10},
{type: 'alimony', currentDept: 51}
];
function collapse(d) {
d = d.reduce((a, e) => (a[e.type] = (a[e.type]||0) + e.currentDept, a), {});
return Object.keys(d).map(key => ({type: key, currentDept: d[key]}))
}
console.log(collapse(d))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пишу бота на NodeJS, используя telegraph и вот уже в который раз сталкиваюсь с одной и той же проблемойКак ввести последовательно данные и сделать...
Хочу реализовать анимацию картинки, как вот на этом сайте https://bmfestcom, принцип работы должен быть таким, чтобы при ведении курсора мыши, картинка...
Нашёл вот такой скрипт, который проигрывает звук на странице