Me sorprendió mucho descubrir que:
> 'a' in ['a', 'b'] false > ['a','b'].includes('a') true
¿Qué hace cada comando en NodeJS?
Esto no es específico del nodo sino específico de ECMA (JS).
in
Operador Verifica la existencia de la clave en la colección (similar a hasOwnProperty
pero también verifica las claves heredadas en la cadena de prototipos)
includes
el método de Array (introducido en ES6)Comprueba la existencia de valor en la colección.
Array.includes()
comprueba la existencia de un determinado valor en una matriz, mientras que el operador in
comprueba la existencia de una clave en un objeto (o un índice en el caso de matrices como las que está describiendo).
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