Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Map - сумма значения по ключу (https://javascript.ru/forum/misc/84452-map-summa-znacheniya-po-klyuchu.html)

repz 13.09.2022 23:43

Map - сумма значения по ключу
 
Добрый день.
Пытаюсь посчитать кол-во строк по ключу, все получилось:
arr.map(v => [v.num, v.disp]).map(v => res[v] = (res[v] || 0) + 1);

результат:
{   
  '321,AD': 1,
  '123,AD': 1,
  '123,ND': 1
}

Хочу посчитать сумму v.sec не получается, помогите, считает для всех 2 раза по каждому значению sec:
arr.map(v => [v.num, v.sec]).map(v => res[v] =(v[1] || 0) +v[1]);

Ожидается:
{
  '321,sec': 12,
  '123,sec': 32 }

Понимаю, что код в корне не верный.
Данные:
let res= {};
outs =[
    {
    "sec": "12",
    "disp": "AD",
    "num": "321"
},  {
    "sec": "12",
    "disp": "AD",
    "num": "123"
},  {
    "sec": "20",
    "disp": "ND",
    "num": "123"
}];

рони 14.09.2022 07:27

repz,
let res= {};
outs =[
    {
    "sec": "12",
    "disp": "AD",
    "num": "321"
},  {
    "sec": "12",
    "disp": "AD",
    "num": "123"
},  {
    "sec": "20",
    "disp": "ND",
    "num": "123"
}];
res = outs.reduce((res, {sec, num}) => (res[`${num},sec`]=(res[`${num},sec`] || 0) + +sec, res), res);
console.log(res)

repz 14.09.2022 12:40

рони, как всегда, спасибо огромное.


Часовой пояс GMT +3, время: 00:48.