Tenemos la siguiente matriz de javascript:
[ { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 } ] y estamos buscando agregar el sufijo Agst a cada clave que no sea la clave del team , de modo que nuestra salida sea:
[ { team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 }, { team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 }, { team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 } ] Cada objeto en nuestra matriz actual de objetos tiene más de 100 claves y, por este motivo, estamos buscando una solución que cambie específicamente todos los nombres de las claves que no sean team , en lugar de cambiar todas las claves con los nombres ['stat1', 'stat2', ' var1', 'var3', 'aquí'] si es posible.
Puede lograr fácilmente el resultado utilizando map y Object.entries como:
const arr = [ { team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 }, ]; const result = arr.map((o) => Object.fromEntries( Object.keys(o).map((key) => key === "team" ? [key, o[key]] : [`${key}Agst`, o[key]] ) ) ); console.log(result); /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }Esto parece estar funcionando bien para mí.
arr = [ { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }, { team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 } ] arr.forEach((row, index, theArray) => { let rowKeys = Object.keys(row).filter(key => key !== 'team'); rowKeys.forEach(key => { theArray[index][`${key}Agst`] = theArray[index][key]; delete theArray[index][key]; }); }); console.log(arr);