猿问

检查json是否包含key

我想搜索一个 JSON 文件,看看它是否包含我要搜索的电子邮件地址(下面代码中的 example@mail.com)。但是,它不起作用。


function contains(arr, key, val) {

  for (var i = 0; i < arr.length; i++) {

      if(arr[i][key] === val) return true;

  }

  return false;

}


emailRecord = JSON.parse(req.responseText); //Got this from an XMLHttpRequest.


if(contains(fullEmailRecord, "email", "example@mail.com")) 

{

   console.log("LOGGED IN")

}

JSON:


[

  {

    "email": "example@mail.com"

  },

  {

    "email": "mail@example.com"

  }

]

function contains(arr, key, val) {

  for (var i = 0; i < arr.length; i++) {

      if(arr[i][key] === val) return true;

  }

  return false;

}


const fullEmailRecord = [

  {

    "email": "example@mail.com"

  },

  {

    "email": "mail@example.com"

  }

];


if(contains(fullEmailRecord, "email", "example@mail.com")) 

{

   console.log("LOGGED IN")

}


月关宝盒
浏览 134回答 3
3回答

www说

我认为它比这简单得多,在字符串而不是 json 中搜索它,如下所示:req.responseText.contains("example@mail.com")或者req.responseText.indexOf("example@mail.com")&nbsp;>&nbsp;-1完整使用:if&nbsp;(req.responseText.contains("example@mail.com"))&nbsp;{&nbsp; &nbsp;&nbsp;console.log("LOGGED&nbsp;IN") }

动漫人物

它在代码片段中有效,但在原始代码段中无效,因为fullEmailRecord使用的是变量而不是emailRecord .

慕姐4208626

做这个:arr.map(e&nbsp;=>&nbsp;e.email&nbsp;===&nbsp;'YOUR&nbsp;EMAIL');如果返回一个对象那么它存在换句话说,你可以改变你的功能function&nbsp;contains(arr,&nbsp;key,&nbsp;val)&nbsp;{ &nbsp;&nbsp;return&nbsp;arr.map(e&nbsp;=>&nbsp;e[key]&nbsp;===&nbsp;val) }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答