DEV Community

Discussion on: Which is faster: obj.hasOwnProperty(prop) vs Object.keys(obj).includes(prop)

Collapse
 
ycmjason profile image
YCM Jason • Edited

I bet it has to be Object.hasOwnProperty.

Depending on the runtime implementation, Object in JavaScript should be somewhat similar to a HashMap. So a key lookup should be O(1). Array.includes on the other hand is obviously O(n). They really are not very comparable.

Object.hasOwnProperty would be more comparable to the in operator. in should be a little bit more complicated as it looks through the prototype chain as well. But for keys that are already attached to an Object, I suppose it should give a similar, if not the same, time complexity.

Collapse
 
ethanarrowood profile image
Ethan Arrowood • Edited

Turns out the Array includes method is faster!
thepracticaldev.s3.amazonaws.com/i...

Collapse
 
ycmjason profile image
YCM Jason

Try a bigger object, say with 20000 keys.

Collapse
 
ycmjason profile image
YCM Jason

interesting, is this running on node?