Luchando por descubrir cómo eliminar las comas iniciales de una clave en mi objeto, por ejemplo, dado este objeto:
{ 'D,F,': 14, 'G,,E': 32, ',D,R': 24 }Este es mi resultado final deseado.
{ 'D,F,': 14, 'G,,E': 32, 'D,R': 24 }Esto es lo que he probado
const newArr = JSON.parse( JSON.stringify(sample).replaceAll('C', '').replaceAll(/(^[,\s]+)/g, '') )consola.log(nuevaArr)
y lo que estoy recibiendo
{ 'D,F,': 14, 'G,,E': 32, ',D,R': 24 }Si su entorno lo permite, debe usar Object.entries y su opuesto Object.fromEntries :
const sample = { 'D,F,': 14, 'G,,E': 32, ',D,R': 24 }; const transformed = Object.fromEntries( Object.entries(sample).map(([key, value]) => [key.replace(/^,+/, ""), value]) ); console.log(transformed); De la página de MDN sobre Object.entries y Object.fromEntries :
El método
Object.entries()devuelve una matriz de pares de propiedades enumerables [clave, valor] con clave de cadena enumerables de un objeto determinado.
El método
Object.fromEntries()transforma una lista de pares clave-valor en un objeto.
Después de obtener nuestros pares, tomamos cada par y eliminamos la coma inicial, si corresponde, con replace , luego tomamos los pares transformados y los convertimos nuevamente en un objeto.
También puede usar forEach para recorrer todos los elementos y encontrar si alguna clave comienza con una coma.
let json = { 'D,F,': 14, 'G,,E': 32, ',D,R': 24 }; let arr = [] Object.entries(json).forEach((element) => { if(element[0].charAt(0) == ','){ let newKey = element[0].substring(1); arr[newKey] = element[1]; }else { arr[element[0]] = element[1]; } }); let newJson = JSON.parse(JSON.stringify({ ...arr })); console.log(newJson);