I was very surprised to find out that:
> 'a' in ['a', 'b'] false > ['a','b'].includes('a') true
What does each command perform in NodeJS?
Juan Pablo Isaza
This is not node specific but ECMA (JS) specific.
Checks the existence of key in the collection (similar to
hasOwnPropertybut also check inherited keys in prototype chain)
includesmethod of Array (introduced in ES6)
Checks the existence of value in the collection
Array.includes() checks for the existence of a certain value in an array, while the
in operator checks for the existence of a key in an object (or an index in the case of arrays like you're describing).
console.log('a' in ['a', 'b']); // false, no such key console.log(0 in ['a', 'b']); // true, 0 is a key that exists console.log(1 in ['a', 'b']); // true, 1 is a key that exists console.log(2 in ['a', 'b']); // false, 2 is a key that doesn't exists