Затирается предыдущее значение, а нужно добавлять
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] ;