我想搜索一个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")
}
发布于 2020-10-05 04:10:44
它可以在代码片段中工作,但不能在原始代码中工作,因为使用的是变量fullEmailRecord而不是emailRecord。
发布于 2020-10-05 04:14:04
我认为这要简单得多,在字符串中搜索它,而不是像这样在json中搜索:
req.responseText.contains("example@mail.com")或
req.responseText.indexOf("example@mail.com") > -1完全使用:
if (req.responseText.contains("example@mail.com")) {
console.log("LOGGED IN")
}发布于 2020-10-05 04:19:54
执行以下操作:
arr.map(e => e.email === 'YOUR EMAIL');如果它返回一个对象,那么它就存在
换句话说,您可以将您的函数更改为
function contains(arr, key, val) {
return arr.map(e => e[key] === val)
}https://stackoverflow.com/questions/64199374
复制相似问题