Tener la siguiente matriz de entrada:
const input = [ { id: 1, name: 1 }, { id: 2, name: 2 }, { id: 3, name: 3 }, { id: 4, name: 4 } ];debe ser cambiado a
output = [ { id: 1, name: '1' }, { id: 2, name: '2' }, { id: 3, name: '3' }, { id: 4, name: '4' } ];por lo que el valor del nombre se convertirá en cadena. He encontrado un método para hacerlo, pero parece demasiado complicado:
const output = input.map((el) => ({ ...el, name: el.name.toString() }));¿Hay una mejor manera de hacer esto?
Usando desestructuración y String .
Compruebe las diferencias con toString y String aquí ¿Cuál es la diferencia entre String (valor) y valor.toString ()
const input = [ { id: 1, name: 1, }, { id: 2, name: 2, }, { id: 3, name: 3, }, { id: 4, name: 4, }, ]; const output = input.map(({ name, ...rest }) => ({ ...rest, name: String(name), })); console.log(output)La solución que proporcionó está perfectamente bien y no creo que haya una solución mejor. Dependiendo de si necesita copiar la matriz o no, también puede usar esta solución:
input.forEach(el => el.name = el.name.toString());Esta solución modificará los objetos en lugar de crear otros nuevos.