我有一個陣列
[{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": false}]
我需要安慰值為isEnabledtrue的值。
我已經嘗試過 forEach 方法,但如果兩個值都為真則不起作用。
因為 forEach 迭代每個物件,所以它一次會得到一個值。
下面是我的代碼
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')
}
})
我該如何解決這個問題。
提前致謝........
uj5u.com熱心網友回復:
無需運行回圈。
只需找到name具有pay1和name擁有的元素pay1。檢查isEnabled每個節點的。如果兩個名稱都為真,則兩者都啟用或僅啟用一個。
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')
}
uj5u.com熱心網友回復:
一種方法是過濾所有啟用的國家并顯示它們
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`)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/389829.html
上一篇:將陣列元素作為值推送到物件
