我想搜索一个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")
}
答案 0 :(得分:0)
它在代码段中有效,但由于使用了变量fullEmailRecord
而不是emailRecord
,因此不适用于原始代码。
答案 1 :(得分:0)
我认为比这简单得多,像这样在字符串而不是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")
}
答案 2 :(得分:0)
执行以下操作:
arr.map(e => e.email === 'YOUR EMAIL');
如果返回对象,则该对象存在
换句话说,您可以将功能更改为此
function contains(arr, key, val) {
return arr.map(e => e[key] === val)
}