Estos son los datos que necesitan ser procesados
let test=[ { "id": 28620, "name": "fenbi1", "dn": "chl" }, { "id": 5941, "name": "fenbi2", "dn": "chl" }, { "id": 5226, "name": "fenbi3", "dn": "chl" }]El requisito es cambiar solo dn a ch el valor cambiado es
let test=[ { "id": 28620, "name": "fenbi1", "dn": "ch" }, { "id": 5941, "name": "fenbi2", "dn": "ch" }, { "id": 5226, "name": "fenbi3", "dn": "ch" }]Este es el método que usé
test=test.map((item)=>({ 'id':item.id, 'name':item.name, 'dn':'ch' }))Este enfoque funciona, pero no es elegante porque solo para cambiar un valor, también debe escribir los demás, ¿hay una mejor manera de implementar esto?
Use la sintaxis de descanso para recopilar las propiedades que no sean dn y luego distribúyalas en el nuevo objeto.
const test=[{id:28620,name:"fenbi1",dn:"chl"},{id:5941,name:"fenbi2",dn:"chl"},{id:5226,name:"fenbi3",dn:"chl"}]; const output = test.map(({ dn, ...rest }) => ({ dn: 'ch', ...rest })); console.log(output);Solo un bucle for simple podría ser mejor que el mapa en esta situación
let test=[ { "id": 28620, "name": "fenbi1", "dn": "chl" }, { "id": 5941, "name": "fenbi2", "dn": "chl" }, { "id": 5226, "name": "fenbi3", "dn": "chl" }] for (let item of test) { item.dn = 'ch' } console.log(test)Puedes escribir código como este.
let test=[ { "id": 28620, "name": "fenbi1", "dn": "chl" }, { "id": 5941, "name": "fenbi2", "dn": "chl" }, { "id": 5226, "name": "fenbi3", "dn": "chl" }]Ahora usa array.map()
const newArray = test.map(e => ({...e,dn:"ch"}));