Utilizzando jQuery, come faccio a scorrere una serie di oggetti e restituire quello che soddisfa determinati criteri?jQuery: come trovare un oggetto con una certa proprietà è uguale a un certo valore?
risposta
È possibile utilizzare la funzione 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]
}
Se la tua condizione si vuole testare per è qualcosa di diverso da una rigorosa parità, quindi si dovrà utilizzare una sorta di matrice di iterazione che esegue il confronto personalizzato . Potresti farlo con .each()
o con .grep()
a seconda del tipo di output desiderato.
Se la condizione era un'uguaglianza rigorosa, è possibile utilizzare jQuery.inArray()
.
Ovviamente, non è necessario jQuery per questo come si potrebbe semplicemente scorrere l'array da soli in semplice javascript e implementare qualsiasi test desiderato. Un vantaggio dell'uso di javascript è che puoi uscire dall'iterazione quando hai trovato il risultato desiderato.
in JavaScript regolare:
for (var i = 0, len = array.length; i < len; i++) {
if (array[i].Price === 100) {
// match is in array[i]
break;
}
}
Bello, questo può essere implementato in modo simile come "Elenchi generici/lambda. Dove (n => ...)" in C# – Pierre
Secondo la documentazione di jQuery, '' this''' è legato all'oggetto della finestra globale, non al articolo. L'articolo è il primo parametro di quella funzione. – Andy
@Andy - Thx - L'ho corretto. – jfriend00
$([1,2,2,4]).filter(function(i,n){return n==2;});
questo restituirà sia 2 di
fondamentalmente la matrice può essere un array di elementi DOM o qualsiasi array realtà, se è una matrice restituita da una selettore jQuery puoi fare qualcosa come
$('div.someClass').filter(function(){return $(this).hasClass('someOtherClass')})
solo per es-> questo restituirà tutti i div che ha ve sia someClass e someOtherClass (nota: ci sono altri modi per fare questo)
aggiornamento secondo il vostro commento, si può fare
$(yourArray).filter(function(i,n){return n.Amount && n.Amount == conditionValue;});
Non si ha realmente bisogno jQuery per fare quello che ti serve:
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. Selettore jQuery dove text = un certo valore
- 2. Recursivamente dir() un oggetto python per trovare valori di un certo tipo o con un certo valore
- 3. Come posso assegnare una proprietà a un oggetto jQuery?
- 4. Verificare che un oggetto ha una certa proprietà
- 5. Come confrontare un valore lungo è uguale a Valore lungo
- 6. Come trovare le proprietà di un oggetto?
- 7. PHP Controlla se la data è passata a una certa data indicata in un certo formato
- 8. Seleziona oggetto quando una proprietà è uguale a Max con NHibernate
- 9. Un oggetto di trasferimento dati è uguale all'oggetto valore?
- 10. trovare dove un array numpy è uguale a qualsiasi valore di un elenco di valori
- 11. Ordine Con un campo uguale a un valore specifico?
- 12. Come si controlla se una stringa non è uguale a un oggetto o un altro valore di stringa in java?
- 13. Come trovare un oggetto di un certo tipo in un NSArray?
- 14. Cerca un oggetto javascript per una proprietà con un valore specifico?
- 15. jQuery - ottenere l'indice di un elemento con una certa classe
- 16. Utilizzando LINQ, come trovo un oggetto con un valore di proprietà dato da un elenco?
- 17. Trovare un sottoinsieme che soddisfa una certa condizione
- 18. php non è uguale a non è uguale, uguale a
- 19. Creare un oggetto con proprietà,
- 20. Impostazione di un oggetto uguale a un altro oggetto con l'operatore di assegnazione in Javascript
- 21. Come costruire un oggetto con molte proprietà?
- 22. Impostazione di una proprietà per riflessione con un valore stringa
- 23. Assegnare una proprietà dell'oggetto a un valore di matrice?
- 24. Il puntatore è garantito per> un certo valore?
- 25. Trovare primo e l'ultimo indice di un certo valore in una lista in Python
- 26. jQuery: trovare() i bambini fino a quando viene riscontrato un certo elemento di soglia
- 27. Strano comportamento accesso a una proprietà in un oggetto JavaScript
- 28. Come trovare un genitore con una classe conosciuta in jQuery?
- 29. Come trovare una voce ArrayCollection con un valore di proprietà specifico?
- 30. Come stabilire se un oggetto è un oggetto RegExp?
Questo dipende interamente dagli oggetti e dalla condizione. Abbiamo bisogno di alcuni dati di esempio. –
Cosa stai cercando di fare? Puoi pubblicare qualche codice> – elclanrs
Ogni oggetto ha proprietà ID e Amount. Una matrice contiene una dozzina di oggetti. – David