Checking if a key exists in a JavaScript object?

How do I check if a particular key exists in a JavaScript object or array?

If a key doesn't exist, and I try to access it, will it return false? Or throw an error?

Text Copied From stackoverflow.com
on : Wed, Jul 08, 2009 Views : 1226188

Accepted Answer

Checking for undefined-ness is not an accurate way of testing whether a key exists. What if the key exists but the value is actually undefined?

var obj = 
{
 key: undefined 
};
 obj[key] != undefined 
// false, but the key exists! 

You should instead use the in operator:

key in obj 
// true, regardless of the actual value 

If you want to check if a key doesn't exist, remember to use parenthesis:

!(key in obj) 
// true if key doesn't exist in object !key in obj   
// ERROR!  Equivalent to false in obj 

Or, if you want to particularly test for properties of the object instance (and not inherited properties), use hasOwnProperty:

obj.hasOwnProperty(key) 
// true 

For performance comparison between the methods that are in, hasOwnProperty and key is undefined, see this benchmark

Text Copied From stackoverflow.com
on : Wed, Jul 08, 2009

Ask Question

If you want to ask question you must LogIn or SignUp
Login SignUp

Quick Links

E-Magazines

@

Total Followers
Study Group Created
Study Group Joined
Following Teacher
Following Organization
Blog Articles Added
Questions Asked
Questions Answered
Jobs Posted
Total Members in Group
Questions asked by members
Tasks added in this Group

Please wait..

Ok

Login to Open ESchool OR Create your account    Login   SignUp