我有一个对象
me = {
name: "Mo",
age: 28,
}
例如,我想看看这个对象是否具有"高度"属性。(它没有)我该怎么做?因此,例如,如果它具有属性"height",我可以给它一个值"5,7"。
请注意:我不想检查属性值(me.name),而是检查属性名称。
谢谢。
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。
您可以使用.hasOwnProperty
me.hasOwnProperty('height'); //false
if (me.hasOwnProperty('height'))
{
}
else
{
}
直接回答:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
但是,你应该做的是创建一个合约对象/类/模块,期望我拥有height
属性。如果没有,则应引发异常。编程中最糟糕的事情是半屁股期望。它不仅打破了 SOLID 戒律,还会导致这样的场景,其中唯一的解决方案是重复的 if/switch 语句,以确保处理所有可能性......