Javascript 查找数组中是否存在对象中的值
我试图找出数组中的对象中是否存在值Javascript 查找数组中是否存在对象中的值,javascript,jquery,arrays,object,javascript-objects,Javascript,Jquery,Arrays,Object,Javascript Objects,我试图找出数组中的对象中是否存在值roomTypeFilter。然后,我想根据值roomTypeFilter是否存在来执行条件语句 下面是我的代码 function includes(k) { for (var i = 0; i < this.length; i++) { if (this[i] === k || (this[i] !== this[i] && k !== k)) { return true;
roomTypeFilter
。然后,我想根据值roomTypeFilter
是否存在来执行条件语句
下面是我的代码
function includes(k) {
for (var i = 0; i < this.length; i++) {
if (this[i] === k || (this[i] !== this[i] && k !== k)) {
return true;
}
}
return false;
}
var dayValue = this.ui.dayConstraintList.val();
var arr = [courseTemplate.get('dayConstraints')[dayValue]];
console.log(arr);
arr.includes = includes;
console.log(arr.includes('roomTypeFilter'));
功能包括(k){
for(var i=0;i
第一个console.log
返回数组中的对象
第二个
console.log
返回false
,在这种情况下,由于roomTypeFilter
存在于对象内部,我想返回'true',但我不确定如何返回,非常感谢您的帮助。使用hasOwnProperty
而不是使用includes
。查看有关hasOwnProperty
的更多信息。从名称上看,它是不言自明的——它本质上返回一个布尔值,表示对象是否具有属性。即,在您的情况下,您将使用:
arr[0].hasOwnProperty('roomTypeFilter');
您可以使用方法检查对象是否包含roomTypeFilter
属性
...
if (this[i].hasOwnProperty(k)) {
...
}
...
您可以重构要使用的
includes
函数
some()对数组中的每个元素执行一次回调函数,直到找到一个回调函数,其中回调函数返回一个truthy值。。。如果找到这样的元素,some()立即返回true
这里有一个例子
var-arr=[
{
roomTypeFilter:{
姓名:“富”
}
},
[“roomTypeFilter”,“foo”],
“roomTypeFilter foo”
]
功能包括(arr,k){
返回arr.some(功能(项目){
返回项===对象(项)&&item.hasOwnProperty(k);
})
}
console.log(“arr是否包括roomTypeFilter?”,includes(arr,'roomTypeFilter'))
我想您正在寻找console.log(!arr.filter(d=>d.hasOwnProperty('roomTypeFilter')).length)代码>当我尝试console.log(arr[0].hasOwnProperty('roomTypeFilter'))时
I getUncaught TypeError:无法读取未定义的属性“hasOwnProperty”
则您的arr[0]
必须未定义。无论您想检查哪个对象是否包含您要查找的函数,请将其放置在arr[0]
处。语法基本上是object.hasOwnProperty('function/property')
Ahh是的,在两种不同的情况下调用此函数,它最初未定义,但在另一种情况下定义。太好了:)很高兴我能帮上忙,如果您有任何进一步的问题,请告诉我