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 get
Uncaught TypeError:无法读取未定义的属性“hasOwnProperty”
则您的
arr[0]
必须未定义。无论您想检查哪个对象是否包含您要查找的函数,请将其放置在
arr[0]
处。语法基本上是
object.hasOwnProperty('function/property')
Ahh是的,在两种不同的情况下调用此函数,它最初未定义,但在另一种情况下定义。太好了:)很高兴我能帮上忙,如果您有任何进一步的问题,请告诉我