Usando jQuery, ¿cómo iterar a través de una matriz de objetos y devolver el que cumple con ciertos criterios?jQuery: ¿Cómo encontrar un objeto con una propiedad determinada es igual a un cierto valor?
Respuesta
Usted puede utilizar la función jQuery grep:
var matches = jQuery.grep(array, function(item) {
// this is a reference to the element in the array
// you can do any test on it you want
// return true if you want it to be in the resulting matches array
// return false if you don't want it to be in the resulting matches array
// for example: to find objects with the Amount property set to a certain value
return(item.Amount === 100);
});
// matches contains all objects that matches
if (matches.length) {
// first match is in matches[0]
}
Si su condición que desea probar es distinta de una igualdad estricta nada, entonces usted tendrá que utilizar algún tipo de matriz de iteración que ejecuta su comparación personalizada . Puede hacerlo con .each()
o con .grep()
dependiendo del tipo de salida que desee.
Si su condición era una igualdad estricta, podría usar jQuery.inArray()
.
Obviamente, no necesita jQuery para esto, ya que podría simplemente iterar a través de la matriz en javascript simple e implementar cualquier prueba que desee. Una ventaja de utilizar JavaScript simple es que puedes salirte de la iteración cuando encuentras el resultado que deseas.
en JavaScript normal:
for (var i = 0, len = array.length; i < len; i++) {
if (array[i].Price === 100) {
// match is in array[i]
break;
}
}
Bueno, esto se puede implementar de manera similar como 'Listas genéricas/lambda .Where (n => ...)' en C# – Pierre
De acuerdo con la documentación de jQuery '' 'this''' está vinculado al objeto de ventana global, no al ít. El artículo es el primer parámetro de esa función. – Andy
@Andy - Thx - Lo corregí. – jfriend00
$([1,2,2,4]).filter(function(i,n){return n==2;});
Esto devolverá tanto 2 de
básicamente la matriz puede ser una matriz de elementos DOM o cualquier matriz de hecho, si se trata de una matriz devuelta por una Selector jQuery puedes hacer algo como
$('div.someClass').filter(function(){return $(this).hasClass('someOtherClass')})
solo para eg-> esto devolverá todos los divs que ja ve tanto algunaClase y someOtherClass (nota: hay otras maneras de hacer esto)
actualización como por su comentario, puede hacerlo
$(yourArray).filter(function(i,n){return n.Amount && n.Amount == conditionValue;});
Usted realmente no necesita jQuery para hacer lo que necesita:
var objects = [{id:23, amount:232}, {id:42, amount: 3434}, ...]
// the function which finds the object you want, pass in a condition function
function findObject(objectMeetsCondition){
for(var i = 0 ; i < objects.length ; i++){
if(objectMeetsCondition(objects[i])) return objects[i];
}
}
// your custom condition that determines whether your object matches
function condition(obj){
return obj.amount == 3434;
}
findObject(condition); // returns {id:42,amount:3434}
- 1. Usando LINQ, ¿cómo puedo encontrar un objeto con un valor de propiedad dado de una lista?
- 2. ¿Cómo puedo asignar una propiedad a un objeto jQuery?
- 3. Recursivamente dir() un objeto python para encontrar valores de un cierto tipo o con un cierto valor
- 4. ¿Cómo encontrar un objeto de cierto tipo en un NSArray?
- 5. ¿Cómo verificar si un objeto tiene cierto método/propiedad?
- 6. Verifique si un objeto dado (referencia o tipo de valor) es igual a su valor predeterminado
- 7. Seleccionar objeto cuando una propiedad es igual a Máx. Con NHibernate
- 8. Encontrar si un valor es igual al valor de cualquier elemento de matriz en MATLAB
- 9. Encontrar todos los elementos con un cierto valor de atributo en jquery
- 10. Cómo comparar un valor largo es igual al valor largo
- 11. ¿Qué es un objeto jQuery?
- 12. ¿Es un objeto de transferencia de datos igual que un objeto de valor?
- 13. Cómo rotar CONSTANTEMENTE un objeto con jquery?
- 14. ¿Encontrar un objeto con un miembro de datos con un valor único en Java?
- 15. ¿Cómo puedo comprobar si existe un objeto con una propiedad específica en una matriz de Ruby?
- 16. Determinar si el atributo CSS es un cierto valor?
- 17. Rieles validación de que un valor no es igual a
- 18. Automapper: Asignación de un valor de propiedad de un objeto a una cadena
- 19. objeto a un valor lógico
- 20. ¿Busca un objeto javascript para una propiedad con un valor específico?
- 21. Cómo usar jQuery para encontrar un enlace dentro del div con una clase determinada y hacerlo inactivo
- 22. ¿Cómo eliminar una propiedad de un objeto?
- 23. php no es igual a no es igual, igual a
- 24. LINQ Quitar elemento de tabla de objeto donde la propiedad es igual al valor
- 25. ¿Cómo se comprueba si una cadena no es igual a un objeto u otro valor de cadena en java?
- 26. Establecer una propiedad por reflexión con un valor de cadena
- 27. Encontrar un elemento secundario con texto específico (valor) usando jQuery
- 28. WPF: Volver a aplicar DataTemplateSelector cuando un cierto valor cambia
- 29. Obtiene una propiedad de objeto PHP que es un número
- 30. ¿Cómo asigno un valor a una propiedad ReplyTo de MailMessage?
Esto depende completamente de qué objetos son y cuál es la condición. Necesitamos algunos datos de muestra. –
¿Qué estás tratando de hacer? ¿Puedes publicar algún código> – elclanrs
? Cada objeto tiene propiedades de ID y cantidad. Una matriz contiene una docena o más de objetos. – David