Necesito agrupar por código de categoría y nombre de categoría y otros campos para agregar con objeto. Data de muestra:
[ { "categoryCode":"categoryCode1", "categoryName":"categoryName1", "cat_type":A }, { "categoryCode":"categoryCode1", "categoryName":"categoryName1", "cat_type":B }, { "categoryCode":"categoryCode2", "categoryName":"categoryName2", "cat_type":B } ]aunque Javascript necesito el resultado esperado:
[ { "categoryCode":"categoryCode1", "categoryName":"categoryName1", "cat_type":[A,B] }, { "categoryCode":"categoryCode2", "categoryName":"categoryName2", "cat_type":[B] } ]¿Cómo lograr esto?
Puedes lograr eso con reducir.
const arr = [{ "categoryCode": "categoryCode1", "categoryName": "categoryName1", "cat_type": "A" }, { "categoryCode": "categoryCode1", "categoryName": "categoryName1", "cat_type": "B" }, { "categoryCode": "categoryCode2", "categoryName": "categoryName2", "cat_type": "B" } ] const result = Object.values( arr.reduce((a, { categoryCode, categoryName, cat_type }) => (((a[`code_${categoryCode}_name_${categoryName}`] ??= { categoryCode, categoryName, cat_type: [] }).cat_type.push(cat_type)), a), {}) ); console.log(result)