Tengo un objeto como este:
let output = [ { Email: 'haha@yopmail.com', KolomB: 'Haha', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: 2022-01-01T16:59:48.000Z }, { Email: 'blabla@gmail.com', KolomB: 'blabla', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: 2022-01-01T16:59:48.000Z } ]
Quiero eliminar los espacios si ocurre en las claves dentro del objeto.
esta es mi salida deseada:
output = [ { Email: 'haha@yopmail.com', KolomB: 'Haha', KolomC: 6, KolomD: '3.000.000', KolomE: 2022-01-01T16:59:48.000Z }, { Email: 'blabla@gmail.com', KolomB: 'blabla', KolomC: 6, KolomD: '3.000.000', KolomE: 2022-01-01T16:59:48.000Z } ]
Como puede ver, quiero eliminar el espacio en Kolom D
para que sea KolomD
en la variable de output
.
Esto es lo que he hecho antes:
for (let i = 0; i < output.length; i++) { Object.keys(output[i]).forEach(function(key) { key = key.replace(/\s+/g, "").replace(/^\s+|\s+$/g, "") }) }
pero la output
sigue sin cambiar. ¿Cómo empujar/cambiar las teclas a la output
?
Avíseme si necesita más información si aún no es suficiente para resolver ese problema.
No puede modificar las claves. Puede crear un nuevo objeto o agregar una nueva propiedad y eliminar la anterior.
Esta es una forma de crear un nuevo objeto.
let output = [{ Email: 'haha@yopmail.com', KolomB: 'Haha', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: '2022-01-01T16:59:48.000Z' }, { Email: 'blabla@gmail.com', KolomB: 'blabla', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: '2022-01-01T16:59:48.000Z' }]; output = output.map(el => Object.fromEntries(Object.entries(el).map(([key, value]) => ([ key.replace(/\s+/g, ""), value ]))) ); console.log(output);
El primer map
itera sobre la matriz y convierte cada elemento. Object.entries
convierte cada elemento en una matriz. El segundo map
aplica el algoritmo de su pregunta a cada key
. Object.fromEntries
a convertir la matriz en un objeto.
También eliminé el segundo .replace
. No es necesario. El primer replace
ya elimina todos los espacios.
Puedes probar esto:
let output = [ { Email: 'haha@yopmail.com', KolomB: 'Haha', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: 2022-01-01T16:59:48.000Z }, { Email: 'blabla@gmail.com', KolomB: 'blabla', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: 2022-01-01T16:59:48.000Z } ] for (let i = 0; i < output.length; i++) { Object.keys(output[i]).forEach(function(key) { const newkey = key.replace(/\s+/g, "").replace(/^\s+|\s+$/g, "") const value = output[i][key]; delete output[i][key]; output[i][newkey] = value; }) }
Puede usar un bucle for...of
y String#replace
:
const output = [ { Email: 'haha@yopmail.com', KolomB: 'Haha', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: '2022-01-01T16:59:48.000Z' }, { Email: 'blabla@gmail.com', KolomB: 'blabla', KolomC: 6, ' Kolom D ': '3.000.000', KolomE: '2022-01-01T16:59:48.000Z' } ]; for(let [i, obj] of Object.entries(output)) { const newobj = Object.fromEntries( Object.entries(obj).map(([key,value]) => [key.replace(/\s+/g, ''),value]) ); output[+i] = newobj; } console.log( output );