Затирается предыдущее значение, а нужно добавлять

const array = [
    {'score': 8, 'value': 14},
    {'score': 8, 'value': 33},
    {'score': 3, 'value': 55},
    {'score': 5, 'value': 66},
    {'score': 8, 'value': 19},
    {'score': 3, 'value': 12},
    {'score': 6, 'value': 28}
];

const func = (array, sortWord) => {
    const obj = {};
    array.forEach(el => {
      obj[el[sortWord]] =[el]

    });
};

func(array, 'score');

должно вернуть

     {
        8 : [{'score':8, 'value': 14}, 
            {'score':8, 'value': 33}],
        3 : [{'score':3, 'value': 55} , 
            {'score':3, 'value': 12}],
        5 : [{'score':5, 'value': 66} ]
        6 : [{'score':6, 'value': 28} ]
     }

а у меня возвращает

{
   '3': [ { score: 3, value: 12 } ],
   '5': [ { score: 5, value: 66 } ],
   '6': [ { score: 6, value: 28 } ],
   '8': [ { score: 8, value: 19 } ]
}

новое значение - затирает предыдущее, а мне нужны все


Ответы (1 шт):

Автор решения: AlexGlebe

Уточнять надо присутствие индекса и делать push в существующий массив либо устанавливать новый.

 if (el[sortWord] in obj)
   obj [ el[sortWord] ] . push(el);
 else
   obj [ el[sortWord] ] = [el] ;
→ Ссылка