我想通过将变量传递到参数来检查using function是否在对象中存在该属性。我尝试了所有三种常用的方法来检查对象的现有属性,但仍然得到了未定义的输出。有人能告诉我哪里错了吗?。
var obj=[
{
"firstName": "James",
"lastName": "Bond"
}];
function propExists(prop)
{
//I tried #1
if(obj.hasOwnProperty(prop)===false)
{
return "Property doesn't exist";
}
//I tried #2
if(!(prop in obj))
{
return "Property doesn't exist";
}
//I tried #3
if("undefined" === typeof(obj[prop]))
{
return "Property doesn't exist";
}
}
console.log(propExists("Date of birth"));
从使其成为阵列的obj中删除方括号
var obj = {
"firstName": "James",
"lastName": "Bond"
};
您实际上使用的是对象数组。
因此,obj[0]
将为您提供第一个对象。
另外,hasOwnProperty
是一个布尔值,指示对象是否具有指定的属性。因此,您不需要在if
条件中专门测试它是否为真
var obj = [{
"firstName": "James",
"lastName": "Bond"
}];
function propExists(prop) {
if (obj[0].hasOwnProperty(prop)) { // will be evaluated as true/false
return "Propert exist";
} else {
return "Property doesn't exist";
}
}
console.log(propExists("Date of birth"));
演示
问题内容: 在遍历数组时,我需要一些帮助,我会不断卡住或重新发明轮子。 如何检查数组中是否有两个(或多个)相同的名称值?我不需要计数器,只需在数组值不是唯一的情况下设置一些变量即可。请记住,数组长度是动态的,数组值也是动态的。 问题答案: 使用array.prototype.map和array.prototype.some:
问题内容: 我试图检查对象数组中是否存在特定项目(属性值),但找不到任何解决方案。请让我知道,我在这里想念的是什么。 问题答案: 您可以像这样过滤数组: 它将返回匹配闭包中指定条件的元素数组-在上述情况下,它将返回包含所有属性等于1的元素的数组。 由于您需要布尔结果,因此只需执行以下检查: 如果过滤后的数组至少包含一个元素,则为true
所以我需要传入一个对象,其中每个属性都是数组。该函数将使用每个数组中保存的信息,但我希望通过检查其每个数组是否为空/空来检查整个对象是否为空(不仅仅是没有属性)。我目前所掌握的: 例如,这将导致上面的: 而这是我正在检查的空(也是真的): 上面的代码不起作用。提前道谢。
问题内容: 如何检查对象在JavaScript中是否具有特定属性? 考虑: 那是最好的方法吗? 问题答案: 我对所给出的答案感到困惑-他们中的大多数都是完全错误的。当然,您可以拥有具有未定义,空值或假值的对象属性。因此,简单地将属性检查减少到甚至更糟,将给您完全误导的结果。 这取决于您要查找的内容。如果您想知道一个对象是否物理上包含一个属性(并且它不是来自原型链的某个地方),那么您就可以这样做。所
这里有几个关于如何检查对象中是否存在属性的答案。 我一直在使用 但我想知道这和
请看do while循环,我认为注释是不言自明的。我想检查该集合是否设置了所有具有符号a、b、c、d的卡片(借助数组或其他任何东西实现它)。