I have an array
[{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": false}]
I need to console the value where isEnabled is true.
I have tried with forEach method but is not working if both value are true.
Because forEach iterates over each object so it will get one value at a time.
Below is my code
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')
}
})
How can i resolve this.
Thanks in advance……..
>Solution :
There is no need to run a loop.
Just find the elememnt with name having pay1 and name having pay1. Check the isEnabled of each node. If its true for both name, both are enabled or only one enabled.
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')
}