2013-05-12 36 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