找数组对象有没有某个属性,有就回传ture

data

let data = [{
        qq: true
    },
    {
        qq: true
    },
    {
        ww: 'hi'
    }
]

我要去判断这个数组对象里面有没有qq,只要其中一个有,就回传true,没有就false

像上面这个data检测完就应该要是true,

但我的代码它會传false,因为它变成只看最后一个有没有qq了,该怎么改正?

代码如下

 function checkData(data){

    let result;

    data.forEach(function(item, i) {
      if(item.qq){
          result = true
      }else{
          result = false
      }
    });

    return result
  }

console.log(checkData(data))
阅读 2.7k
3 个回答

应该用 someforEach 是没有办法中断的。检测属性存在也不能直接判断,否则值为 falsy 的属性会误判。

function checkData (data){
  return data.some(item => item && item.hasOwnProperty('qq'))
}
function checkData(data){
    let flag = false
    data.forEach(function(item, i) {
      if(item.qq){
        flag =  true
      }
    });
    return flag
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题