2013-05-12 59 views
2

使用jQuery UI部件廠,我有options是這樣的數組:如何獲取選項數組中的值的數量?

options: {  
    items: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100], 
    cats: [calico, black, orange] 
} 

我需要得到的值的數量在這些陣列後來在for循環使用。我有一個具有選項鍵爲參數的私有成員函數,和我想要做這樣的事情:

foo: function(key) { 
    for(var i=0; i < this.options.[key].length; i++) { 
     //do things here 
    } 
} 

的語法似乎是不正確的,我不知道如何得到我想要的東西。使用.length()會導致錯誤,說明this.options.items.length不是函數。我不認爲這是一個功能,我也不認爲我理解應該如何使用length

如何獲取option數組中的值的數量?

+0

'this.options [鍵] .length'或'this.options.items.length' /'this.options.cats.length' – 2013-05-12 18:51:04

+0

長度不是一個函數,這是一個屬性,所以只需刪除括號即可。 – adeneo 2013-05-12 18:51:11

+0

如果您使用的是jQuery,請嘗試查看每個()http://api.jquery.com/each – 2013-05-12 18:53:37

回答

3

length屬性不是一種方法,您正確使用它。問題是冗餘.

for(var i=0; i < this.options[key].length; i++) { 
         // ---^ 
+0

爲什麼在您編制索引並且不直接調用該選項時'.'是多餘的?即'this.options [key] .length' vs'this.options。[key] .length' /'this.options.foo.length'? – abdkw 2013-05-12 18:56:00

+1

@CaesiumFarmer嗯,它不是一個有效的JavaScript,它會拋出一個錯誤,它應該是'object [property]',如果你想遍歷你可以使用'for ... in'循環的屬性。或者如果您使用的是jQuery,則可以使用'$ .each'實用程序功能。 '.each(this.options [key],fn)'。 – undefined 2013-05-12 18:59:01