w3schools tag tab style page for color javascript jquery foreach ienumerable any

javascript - tag - title of page html



JavaScript/jQuery equivalente de LINQ Any() (7)

Debería usar un bucle for ordinario (no for ... in ), que solo recorrerá los elementos de la matriz.

¿Hay un equivalente de IEnumerable.Any(Predicate<T>) en JavaScript o jQuery?

Estoy validando una lista de elementos, y quiero romper antes si se detecta un error. Podría hacerlo usando $.each , pero necesito usar una $.each externa para ver si realmente se encontró el elemento:

var found = false; $.each(array, function(i) { if (notValid(array[i])) { found = true; } return !found; });

¿Cuál sería una mejor manera? No me gusta usar solo for arreglos de JavaScript porque itera sobre todos sus miembros, no solo los valores.


En estos días, realmente podría usar Array.prototype.some (especificada en ES5) para obtener el mismo efecto:

array.some(function(item) { return notValid(item); });


La respuesta de Xion es correcta. Para ampliar sobre su respuesta:

.is(function) jQuery tiene el mismo comportamiento que IEnumerable.Any(Predicate<T>) .NET.

De http://docs.jquery.com/is :

Compara la selección actual con una expresión y devuelve verdadero, si al menos un elemento de la selección se ajusta a la expresión dada.


Le sugiero que pruebe el JavaScript for in loop. Sin embargo, tenga en cuenta que la sintaxis es bastante diferente a la que obtiene con un .net IEnumerable . Aquí hay un pequeño ejemplo de código ilustrativo.

var names = [''Alice'',''Bob'',''Charlie'',''David'']; for (x in names) { var name = names[x]; alert(''Hello, '' + name); } var cards = { HoleCard: ''Ace of Spades'', VisibleCard=''Five of Hearts'' }; for (x in cards) { var position = x; var card = card[x]; alert(''I have a card: '' + position + '': '' + card); }


Podría usar la variante de jQuery, is función que acepta un predicado:

$(array).is(function(index) { return notValid(this); });



Te sugiero que uses el $.grep() . Está muy cerca de IEnumerable.Any(Predicate<T>) :

$.grep(array, function(n, i) { return (n == 5); });

Aquí una muestra de trabajo para usted: http://jsfiddle.net/ErickPetru/BYjcu/ .