Итак, у меня есть массив объектов, я создал два диктонара для сопоставления имен.
Я хочу найти все объекты с одинаковым ключом и объединить их. Также объедините эти значения.
Вот что я сделал, но застрял:
const wordcloudData = {
'pretty cool': [3, 1, ['161', '329']],
'pretty damn': [2, 1, ['111', '131']],
'pretty nice': [1, 1, ['211', '499']],
'great': [4, 1, ['18', '19']],
};
const dict = {
'pretty cool': 1,
'pretty damn': 1,
'pretty nice': 1,
};
const dictNames = {
1: 'nice',
}
const formattedArray = _
.chain(wordcloudData)
.keys()
.map(item => {
const [weight, color, reviews] = wordcloudData[item];
return {
name: dictNames[dict[item]] || item,
weight: weight,
color: color,
reviews: reviews,
}
})
/* Here i'm getting that type of array:
[
{ name: 'nice', weight: 1, color: 1, reviews: [ '211', '499' ] },
{ name: 'nice', weight: 2, color: 1, reviews: [ '111', '131' ] },
{ name: 'nice', weight: 3, color: 1, reviews: [ '161', '329' ] },
{ name: 'great', weight: 4, color: 1, reviews: [ '18', '19' ] }
]
*/
.groupBy('name')
.map(_.spread(_.assign)) // Here i'm trying to get rid of objects with same key, but something goes wrong
.value();
Я думаю, что я делаю это неправильно при удалении дубликатов?
Что мне делать дальше?
Чтобы объяснить, что я хочу, покажу, какой массив я хочу, чтобы он был:
Начальный массив объекта:
{
'pretty cool': [3, 1, ['161', '329']],
'pretty damn': [2, 1, ['111', '131']],
'pretty nice': [1, 1, ['211', '499']],
'great': [4, 1, ['18', '19']],
};
Результирующий массив объектов:
{ name: 'nice', weight: 6, color: 1, reviews: [ '161', '329', '111', '131', '211', '499'] },
{ name: 'great', weight: 4, color: 1, reviews: [ '18', '19' ] }