Me gustaría cambiar los nombres de las claves en dicho objeto:
const data = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4', } con esas teclas del mapa:
const map = { 'key1': 'change1', 'key4': 'change4' } Usando el código a continuación:
const replacedKeysInData = Object.keys(data).map((key) => { const keyFromMap = map[key] || key; return { [keyFromMap]: data[key] } }) console.log(replacedKeysInData); Yo obtengo:
[ { change1: 'value1' }, { key2: 'value2' }, { key3: 'value3' }, { change4: 'value4' } ]El punto es que me gustaría tenerlo en un objeto:
{ change1: 'value1', key2: 'value2', key3: 'value3', change4: 'value4' }Supongo que es simple, ¿cómo puedo hacerlo? Gracias
está utilizando el map que devuelve una matriz. Creé un objeto vacío y agregué las claves en un forEach
const data = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4', } const map = { 'key1': 'change1', 'key4': 'change4' } const replacedKeysInData ={} Object.keys(data).forEach((key) => { const keyFromMap = map[key] || key; replacedKeysInData[keyFromMap] = data[key] }) console.log(replacedKeysInData);No tiene que ser nada complicado. Simplemente itere sobre el objeto, intercambie claves y elimine el original.
const data={key1:"value1",key2:"value2",key3:"value3",key4:"value4"},map={key1:"change1",key4:"change4"}; for (const key in data) { if (map[key]) { data[map[key]] = data[key]; delete data[key]; } } console.log(data); const data = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4', } const map = { 'key1': 'change1', 'key4': 'change4' } const replacedKeysInData = Object.entries(data).map(val => { if (Object.keys(map).includes(val[0])) { return [map[val[0]], val[1]] } else { return val } }); const newData = Object.fromEntries(replacedKeysInData); console.log(newData)