Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test if key-name exists in JavaScript object literal

In the text adventure I am making, my object literals for the rooms look like this:

room : {
  // some info,
  exits : {
    north : -1,
    east : "house",
    south : "forest",
    west : -1
  }
}

and in my function to move around it says:

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

now I want to save space by just testing if the key for the relevant direction exits in the object. so the literals will go:

room : {
  // some info,
  exits : {
    east : "house",
    south : "forest"
  }
}

... what should my if statement look like? what is the 'proper' way to ascertain if a given key-name exits in the object?

like image 257
drenl Avatar asked Dec 25 '22 15:12

drenl


1 Answers

You can use the in operator:

if (direction in room.exits) {
    // go that way
} else { 
    console.log("you can't go that way!");
}
like image 156
p.s.w.g Avatar answered Jan 10 '23 08:01

p.s.w.g