если я правильно понял, что вам нужно, функция reduce
может сделать то, что вам нужно.
reduce
вызов функции для каждого элемента массива. arr
- массив результатов, который будет возвращен при уменьшении в конце. Я проверяю для каждого elem
, находится ли он в arr
. если нет, я добавляю это.
Я не тестировал этот код, но он должен работать
arrayOfData.reduce((arr, elem) => {
let e = arr.find(el => el.key === elem.key);
if(!e) {
e = {key : elem.key}
arr.push(e);
}
e[elem.gkey] = elem[elem.gkey];
return arr;
}, [])