как объединить массив по значению
"days": [
{
"date": "2023-09-20T03:00:00+03:00",
"views": 1289,
"clicks": 59,
"ctr": 4.58,
"cpc": 13.85,
"sum": 816.89,
"atbs": 3,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"apps": [
{
"views": 95,
"clicks": 3,
"ctr": 3.16,
"cpc": 19.8,
"sum": 59.39,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"nm": [
{
"views": 50,
"clicks": 2,
"ctr": 4,
"cpc": 15.76,
"sum": 31.51,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467195
},
{
"views": 45,
"clicks": 1,
"ctr": 2.22,
"cpc": 27.88,
"sum": 27.88,
"atbs": 0,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467194
}
],
"appType": 1
},
{
"views": 849,
"clicks": 36,
"ctr": 4.24,
"cpc": 14.9,
"sum": 536.31,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"nm": [
{
"views": 532,
"clicks": 16,
"ctr": 3.01,
"cpc": 20.76,
"sum": 332.09,
"atbs": 0,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467195
},
{
"views": 317,
"clicks": 20,
"ctr": 6.31,
"cpc": 10.21,
"sum": 204.22,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467194
}
],
"appType": 32
},
{
"views": 345,
"clicks": 20,
"ctr": 5.8,
"cpc": 11.06,
"sum": 221.19,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"nm": [
{
"views": 192,
"clicks": 10,
"ctr": 5.21,
"cpc": 12.24,
"sum": 122.41,
"atbs": 0,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467195
},
{
"views": 153,
"clicks": 10,
"ctr": 6.54,
"cpc": 9.88,
"sum": 98.78,
"atbs": 1,
"orders": 0,
"cr": 0,
"shks": 0,
"sum_price": 0,
"name": "Пуховик зимний с капюшоном стеганый",
"nmId": 175467194
}
],
"appType": 64
}
]
}]
Всем привет подскажите как сделать из такого массива, вот такое:
"175467195": [
"views": 774,
"clicks": 28,
],
"175467194": [
"views": 515,
"clicks": 31,
],
Заранее спасибо
Ответы (1 шт):
Автор решения: zzit
→ Ссылка
Попробуйте такой код
const result = {};
data.days.forEach(day => {
day.apps.forEach(app => {
app.nm.forEach(nm => {
const { nmId, views, clicks } = nm;
if (!result[nmId]) {
result[nmId] = { views, clicks };
} else {
result[nmId].views += views;
result[nmId].clicks += clicks;
}
});
});
});
где data
это обьект в котором находиться изначальный обьект