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 );