Necesito convertir una lista de correo electrónico en un objeto de valor clave dentro de una matriz. Comienzo con "email@mail.com,mike@example.com,john@gmail.com" y quiero terminar con
[ {"to": "email@mail.com"}, {"to": "mike@example.com"}, {"to": "john@gmail.com"} ]Esto es lo que he probado
var req = { query: { personalize: "email@mail.com,mike@example.com,john@gmail.com" } }; var emailList = req.query.personalize; var emailArr = emailList.split(","); var emailObj = Object.assign({}, emailArr); console.log(emailObj);Esto es lo que terminé con
"0": "email@mail.com" "1": "mike@example.com" "2": "john@gmail.com"Después de esto probé este
var req = { query: { personalize: "email@mail.com,mike@example.com,john@gmail.com" } }; var emailList = req.query.personalize; var arr = emailList.split(","); const res = arr.reduce((acc,curr)=> (acc[curr]='to',acc),{}); console.log(res)Esto me acercó, pero al revés de lo que quería. Dando un resultado como
"email@mail.com": "to" ...Como Ivar y Amir señalaron en los comentarios, esta solución funciona.
function mockTest() { var req = { query: { personalize: "email@mail.com,john@gmail.com,me@example.com" } }; var emailList = req.query.personalize; console.log(createToList(emailList)) } mockTest(); function createToList(emailString) { return emailString.split(",").map(to => ({to})); }