tengo una matriz
[{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": false}]
Necesito consolar el valor donde isEnabled es verdadero.
He intentado con el método forEach pero no funciona si ambos valores son verdaderos.
Porque forEach itera sobre cada objeto para que obtenga un valor a la vez.
A continuación se muestra mi código
const arr = [{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": true}] arr.forEach(item => { if ((item.name === 'pay1' && item.isEnabled) && (item.name === 'pay2' && item.isEnabled)) { console.log('both enabled') } else if (item.name === 'pay1' && item.isEnabled) { console.log('pay1 enabled') } else if(item.name === 'pay2' && item.isEnabled){ console.log('pay2 enabled') } })Cómo puedo resolver esto.
Gracias por adelantado........
una forma es filtrar todos los países habilitados y mostrarlos
const arr = [{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": true},,{"name": "pay2","isEnabled": false}] const arrFilt = arr.filter(oneCountry => oneCountry.isEnabled); arrFilt.forEach(item => { console.log(`${item.name} enabled`) })No hay necesidad de ejecutar un bucle.
Simplemente encuentre el elemento con el name que tiene pay1 y el name que tiene pay1 . Verifique isEnabled de cada nodo. Si es cierto para ambos nombres, ambos están habilitados o solo uno habilitado.
const arr = [{ "name": "pay1", "isEnabled": true }, { "name": "pay2", "isEnabled": true }]; const item1 = arr.find(node => node.name === "pay1"); const item2 = arr.find(node => node.name === "pay2"); if (item1.isEnabled && item2.isEnabled) { console.log('both enabled') } else if (item1.isEnabled) { console.log('pay1 enabled') } else if (item2.isEnabled) { console.log('pay2 enabled') } else { console.log('none enabled') }