我正在试图找出给定的键是否存在于对象数组中。如果值键存在,那么我想返回true else。
我从文本框输入键,然后检查该键是否存在于对象数组中,但无法得到。
这是我尝试过的
代码:
var obj = [{
"7364234":"hsjd",
"tom and jerry":"dsjdas",
"mickey mouse":"kfjskdsad",
"popeye the sailor man":"alkdsajd",
"the carribean":"kasjdsjad"
}]
var val = $("input[name='type_ahead_input']").val();
if (obj[val]) {
console.log('exists');
} else {
console.log('does not exist');
}如果我以'the carribean‘的形式提供输入,它存在于对象数组中,即使它输出在控制台中也不存在。
我怎么解决这个问题?
发布于 2018-01-20 14:09:47
这是因为您有一个对象数组( [{...},{...}] ),而不仅仅是一个对象{...}。要么使用对象并保留测试,要么使用Array.find方法搜索数组中是否存在具有val属性的对象。例:
var objArr = [{
"7364234":"hsjd",
"tom and jerry":"dsjdas",
"mickey mouse":"kfjskdsad",
"popeye the sailor man":"alkdsajd",
"the carribean":"kasjdsjad"
}]
let val = $("input[name='type_ahead_input']").val();
var existingObj = objArr.find(function(element) {
return typeof element[val] !== 'undefined';
});
if (existingObj[val]) {
console.log('was found');
} else {
console.log('not-found');https://stackoverflow.com/questions/48356971
复制相似问题