测试 JavaScript 对象字面量中是否存在键名

Gre*_*ett 4 javascript object-literal

在我正在制作的文本冒险中,房间的对象文字如下所示:

room : {
  // some info,
  exits : {
    north : -1,
    east : "house",
    south : "forest",
    west : -1
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的功能中移动它说:

if (room["exits"][direction] !== -1) {// go that way}
else {print "you can't go that way!"}
Run Code Online (Sandbox Code Playgroud)

现在我想通过测试相关方向的键是否存在于对象中来节省空间。所以文字会去:

room : {
  // some info,
  exits : {
    east : "house",
    south : "forest"
  }
}
Run Code Online (Sandbox Code Playgroud)

……我的if陈述应该是什么样的?确定给定键名是否存在于对象中的“正确”方法是什么?

p.s*_*w.g 6

您可以使用in运算符

if (direction in room.exits) {
    // go that way
} else { 
    console.log("you can't go that way!");
}
Run Code Online (Sandbox Code Playgroud)