Tutaj jest luka w mojej wiedzy o JavaScript. Chcę przeszukać tablicę wartości obiektów dla określonej wartości i zwrócić ją.Javascript wydajna tablica wyszukiwania dla wartości z jQuery
Za rok Pisałem JavaScript, jakie realizuje to tak:
var itemClicked = (function(){
var retval;
//Note self.inventory.itemsArray is an array of JS objects
$(self.inventory.itemsArray).each(function(i){
if(parseInt(this.id) === parseInt(idOfItem)){
retval = this;
return false;
}
});
return retval;
})();
To działa, ale jestem pewien, jak wszystko jest bardziej elegancki sposób. Powiedz mi proszę!
EDIT - Rozwiązanie
Dzięki @gdoron z poniższej jego odpowiedź.
var myVar = $(self.owner.itemsArray).filter(function(){
return parseInt(this.id) == parseInt(recItemID);
}).get(0);
Uwaga: .get(0)
dodano na końcu, gdyż myVar owija się jako obiekt jQuery.
Zdefiniuj "* bardziej efektywny *." Niektórzy źle zrozumieją "* mniej znaków *" – Alexander
Więc 'self.inventory.itemsArray' jest tablicą selektorów lub obiektów jQuery? – elclanrs
dlaczego nie indeksować tablicy według identyfikatora? Wystarczy, że zrobisz "return self.inventory".itemsArray [id] 'i całkowicie unikaj pętli. –