matriz de datos
let data = [ {name: "ABC", email: "abc@gamil.com"}, {name: "xyz", email: "xyz@gamil.com"}, {name: "different name", email: "abc@gamil.com"}, {name: "xyz", email: "cde@gamil.com"} ]Necesito un resultado en el que todos los objetos de una matriz que tienen el mismo correo electrónico se combinen en una matriz como valor y la clave debe ser el correo electrónico. por ejemplo, la respuesta del correo electrónico anterior debe ser:
[{ "abc@gmail.com": [ {name: "ABC", email: "abc@gamil.com"}, {name: "different name", email: "abc@gamil.com"}] }, {"xyz@gamil.com": [ {name: "xyz", email: "xyz@gamil.com"}] }, {"cde@gamil.com": [ {name: "xyz", email: "cde@gamil.com"}] } ]El objetivo es obtener todos los datos duplicados en la base del correo electrónico a partir de los datos disponibles.
const data = [ { name: 'ABC', email: 'abc@gamil.com' }, { name: 'xyz', email: 'xyz@gamil.com' }, { name: 'different name', email: 'abc@gamil.com' }, { name: 'xyz', email: 'cde@gamil.com' }, ]; const result = data.reduce((acc, curr) => { const key = curr.email; if (acc[key]) { acc[key].push(curr); } else { acc[key] = [curr]; } return acc; } , {}); console.log(result);