Tengo una pestaña constante donde quiero cambiar la propiedad isActive de booleano a 'encendido' o 'apagado' dependiendo de si es verdadero o falso.
const tab = [ {id:'0',original:{lineId:'4', isActive:false, length: '3'}}, {id:'1',original:{lineId:'5', isActive:true, length: '4'}}, {id:'2',original:{lineId:'6', isActive:false, length: '7'}} ];Intenté usar .map() pero hice algo mal. ¿Puede sugerir dónde está el problema?
const newTab = tab.map(x => x.original.isActive === false ? 'off' : x.original.isActive === true ? 'on' : x);Así es como debería verse newTab después del cambio:
const newTab = [ {id:'0',original:{lineId:'4', isActive:'off', length: '3'}}, {id:'1',original:{lineId:'5', isActive:'on', length: '4'}}, {id:'2',original:{lineId:'6', isActive:'off', length: '7'}} ];Con el código actual, solo devuelve la propiedad isActive cambiada:
const newTab = ["off", "on", "off"]Gracias !
puede usar una asignación y devolver un JSON copiando los valores.
const tab = [ { id: '0', original: { lineId: '4', isActive: false, length: '3' } }, { id: '1', original: { lineId: '5', isActive: true, length: '4' } }, { id: '2', original: { lineId: '6', isActive: false, length: '7' } } ]; const tab2 = tab.map(e => { return { id: e.id, original: { lineId: e.original.lineId, isActive: e.original.isActive ? 'on' : 'off', length: e.original.length } } });Salida: Salida de imagen
Desea devolver todo el objeto, no solo on o off su mapa. Puede condensar esto usando ... (operador de propagación) y solo modificar isActive mientras devuelve todo lo demás como está:
const tab = [{ id: '0', original: { lineId: '4', isActive: false, length: '3' } }, { id: '1', original: { lineId: '5', isActive: true, length: '4' } }, { id: '2', original: { lineId: '6', isActive: false, length: '7' } } ]; const newTab = tab.map(item => ({ ...item, original: { ...item.original, isActive: item.original.isActive ? 'on' : 'off', } })); console.log(newTab)Puede usar la sintaxis extendida y puede actualizar las variables en el método de mapa.
tab.map((e) => ( { ...e, original: { ...e.original, isActive: e.original.isActive ? 'on' : 'off' } } ))