我有一个对象
me = {
name: "Mo",
age: 28,
}
我想看看这个对象是否具有属性“height”。 (它没有)我怎么能这样做?因此,例如,如果它具有属性“height”,我可以给它一个值“5,7”。
请注意:我不想检查属性VALUE(me.name),而是检查属性NAME。
谢谢。
答案 0 :(得分:6)
您可以使用in
运算符:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
请注意,如果对象没有名为" height"的属性,您仍然可以添加这样的属性:
me.height = 100;
无论物体是否具有高度"以前的财产。
还有从Object原型继承的.hasOwnProperty
方法:
if (me.hasOwnProperty("height"))
与in
的测试之间的区别在于.hasOwnProperty()
仅在属性存在时才返回true 并且作为对象的直接属性存在,并且不是通过其原型链继承的。
答案 1 :(得分:1)
您可以使用.hasOwnProperty
me.hasOwnProperty('height'); //false
答案 2 :(得分:1)
直接答案:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
但是,你应该做的是创建一个契约对象/类/模块,期望我拥有height
属性。如果它没有,你应该抛出异常。编程中最糟糕的事情是半个月的预期。它不仅打破了SOLID规则,而且还导致了这样的情况,其中唯一的解决方案是重复if / switch语句,以确保处理所有可能性......
答案 3 :(得分:1)
你可以使用
dataframe