我的JavaScript知識在這裏有一個空白。我想搜索一個特定值的對象值數組並返回它。Javascript高效的搜索陣列價值與jQuery
因爲我一直在寫JavaScript的一年,我一直在執行這樣的:
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;
})();
它的工作原理,但我敢肯定的東西還有一個更優雅的方式。請告訴我!
編輯 - 解決方案
感謝下面他的回答@gdoron。
var myVar = $(self.owner.itemsArray).filter(function(){
return parseInt(this.id) == parseInt(recItemID);
}).get(0);
注:.get(0)
在結束時加入,因爲myVar的被包裝作爲jQuery對象。
定義「*更高效*」。有些人會誤解「*少字符*」 – Alexander
所以'self.inventory.itemsArray'是一個選擇器或jQuery對象的數組? – elclanrs
爲什麼不通過id索引你的數組?他們你只需要'返回self.inventory。itemsArray [id]'並完全避免循環。 –