Estoy buscando un método para JavaScript que devuelva verdadero o falso cuando está vacío... algo como Ruby any? o empty?
[].any? #=> false [].empty? #=> trueEl método .some() nativo de JavaScript hace exactamente lo que estás buscando:
function isBiggerThan10(element, index, array) { return element > 10; } [2, 5, 8, 1, 4].some(isBiggerThan10); // false [12, 5, 8, 1, 4].some(isBiggerThan10); // trueJavaScript tiene el método Array.prototype.some() :
[1, 2, 3].some((num) => num % 2 === 0); devuelve true porque hay (al menos) un número par en la matriz.
En general, la clase Array en la biblioteca estándar de JavaScript es bastante pobre en comparación con Enumerable de Ruby. No hay un método isEmpty y .some .some() requiere que pase una función o obtendrá un error undefined is not a function . Puede definir su propio .isEmpty() así como un .any() más cercano al de Ruby como este:
Array.prototype.isEmpty = function() { return this.length === 0; } Array.prototype.any = function(func) { return this.some(func || function(x) { return x }); }Las bibliotecas como underscore.js y lodash brindan métodos de ayuda como estos, si está acostumbrado a los métodos de recopilación de Ruby, podría tener sentido incluirlos en su proyecto.
Llego un poco tarde a la fiesta, pero...
[].some(x => !!x)