Quiero asignar propiedades específicas de una matriz de objetos a otra matriz de objetos mientras uso un valor como clave en el nuevo objeto.
Por ejemplo, tengo este objeto (la sintaxis no importa, es solo pseudocódigo):
const obj= [ {id:1 , height: 57 ,name:'jhon' , state: 'true', time: ''}, {id:2 , height:64 ,name:'max' , state: 'true', time: ''}, {id:3 , height:62 ,name:'tim' , state: 'false', time: ''}, {id:4 , height:510 ,name:'alex' , state: 'false', time: ''}, {id:5 , height: 510 ,name:'frank' , state: 'true', time: ''} ]Y quiero hacer un mapa con el nombre como clave y la altura como valor, para que se vea así:
[ {jhon : 57}, {max : 64}, ... ]Puede usar Array.map con desestructuración de parámetros y nombre de propiedad calculado .
obj.map(({ name, height }) => ({ [name]: height })) const obj = [ { id: 1, height: 57, name: 'jhon', state: 'true', time: '' }, { id: 2, height: 64, name: 'max', state: 'true', time: '' }, { id: 3, height: 62, name: 'tim', state: 'false', time: '' }, { id: 4, height: 510, name: 'alex', state: 'false', time: '' }, { id: 5, height: 510, name: 'frank', state: 'true', time: '' } ] console.log(obj.map(({ name, height }) => ({ [name]: height })))Estoy configurando el nombre como una clave usando "[]" y devolviendo un objeto con la altura
const obj = [ { id: 1, height: 57, name: 'jhon', state: 'true', time: '' }, { id: 2, height: 64, name: 'max', state: 'true', time: '' }, { id: 3, height: 62, name: 'tim', state: 'false', time: '' }, { id: 4, height: 510, name: 'alex', state: 'false', time: '' }, { id: 5, height: 510, name: 'frank', state: 'true', time: '' } ] const result = obj.map(user => { return {[user.name]: user.height} }) console.log(result);también puedes usar reducir
const obj= [ {id:1 , height: 57 ,name:'jhon' , state: 'true', time: ''}, {id:2 , height:64 ,name:'max' , state: 'true', time: ''}, {id:3 , height:62 ,name:'tim' , state: 'false', time: ''}, {id:4 , height:510 ,name:'alex' , state: 'false', time: ''}, {id:5 , height: 510 ,name:'frank' , state: 'true', time: ''}, ] const newObj = obj.reduce((accu,curr)=>{ const ob = { [curr.name]:curr.height } accu.push(ob) return accu },[]) console.log(newObj) console.log(newObj)