¿Cómo haría para actualizar dinámicamente las claves en una matriz de objetos?
Tengo la siguiente matriz de cadenas llamada encabezados:
headers = ['col1', 'col2', 'col3', 'col4']Tengo la matriz de objetos llamada filas:
const rows = [ { column1: 'value1', column2: 'value2', column3: 'value3', column4: 'value4' }, { column1: 'value5', column2: 'value6', column3: 'value7', column4: 'value8' } ];Me gustaría actualizar las claves dentro de las filas para que coincidan con los valores de los encabezados hechos dinámicamente sin codificarlos.
El resultado esperado es una matriz de cadenas:
{ col1: 'value1', col2: 'value2', col3: 'value3', col4: 'value4' }, { col1: 'value5', col2: 'value6', col3: 'value7', col4: 'value8' }si tienes problemas para entender alguna parte avísame
function convertKeys(array , newKeys){ return array.map(row=>{ return Object.fromEntries(Object.entries(row).map((x,i)=> { x[0] =headers[i] return x })) }) } convertKeys(rows,headers)o en lugar de confiar en el orden, puede usar algo como esto
let newKeys = [ ["column1", "col1"], ["column2", "col2"], ["column3", "col3"], ["column4", "col4"], ] function convertKeys(array , newKeys){ array.forEach(obj=>{ for (let i = 0 ; i < newKeys.length ; i++){ let [oldKey,newKey] = newKeys[i] if(obj.hasOwnProperty(oldKey)){ obj[newKey] = obj[oldKey] delete obj[oldKey] } } }) return array } convertKeys(rows,newKeys)