代码之家  ›  专栏  ›  技术社区  ›  Atal Shrivastava

比较数组中的对象

  •  0
  • Atal Shrivastava  · 技术社区  · 4 年前

    我有一个数组

    [{"name": "pay1","isEnabled": true},{"name": "pay2","isEnabled": false}]

    isEnabled 这是真的。

    我已经尝试过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')
                  }
                })

    提前谢谢。。。。。。。。

    2 回复  |  直到 4 年前
        1
  •  1
  •   Nitheesh    4 年前

    只要找到元素就行了 name pay1 和 名称 有 工资1 . 检查 isEnabled 每个节点的。如果两个名称都为true,则两个名称都已启用或仅启用一个名称。

    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')
    }
        2
  •  1
  •   jeremy-denis milad shiriyan    4 年前

    一种方法是筛选所有启用的国家/地区并显示它们

    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`)
    })