首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查json是否包含key

问检查json是否包含key
EN

Stack Overflow用户
提问于 2020-10-05 04:06:23
回答 3查看 314关注 0票数 0

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
[
  {
    "email": "example@mail.com"
  },
  {
    "email": "mail@example.com"
  }
]

​

代码语言:javascript
复制
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")
}

​

EN

回答 3

Stack Overflow用户

发布于 2020-10-05 04:10:44

它可以在代码片段中工作,但不能在原始代码中工作,因为使用的是变量fullEmailRecord而不是emailRecord。

票数 0
EN

Stack Overflow用户

发布于 2020-10-05 04:14:04

我认为这要简单得多,在字符串中搜索它,而不是像这样在json中搜索:

代码语言:javascript
复制
req.responseText.contains("example@mail.com")

或

代码语言:javascript
复制
req.responseText.indexOf("example@mail.com") > -1

完全使用:

代码语言:javascript
复制
if (req.responseText.contains("example@mail.com")) {
   console.log("LOGGED IN")
}
票数 0
EN

Stack Overflow用户

发布于 2020-10-05 04:19:54

执行以下操作:

代码语言:javascript
复制
arr.map(e => e.email === 'YOUR EMAIL');

如果它返回一个对象,那么它就存在

换句话说,您可以将您的函数更改为

代码语言:javascript
复制
function contains(arr, key, val) {
  return arr.map(e => e[key] === val)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64199374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档