grouping

by oktaviardi pratama

HTML

<div id="json">

</div>

JavaScript

const data = [
  { name_company: 'abc', year: 2020 },
  { name_company: 'abc', year: 2021 },
  { name_company: 'def', year: 2023 },
];

const groupedData = data.reduce((result, item) => {
  const existingItem = result.find((group) => group.name_company === item.name_company);

  if (existingItem) {
    existingItem.same_company.push({ name_company: item.name_company, year: item.year });
  } else {
    result.push({...item, ...{
      same_company: [{ name_company: item.name_company, year: item.year }],}});
  }

  return result;
}, []);

console.log(groupedData);
document.getElementById("json").textContent = JSON.stringify(groupedData, undefined, 2);