2010-09-10 172 views
1

使用jQuery,我试图通过使用索引获取值fileTypes。我不知道如何去做这件事,但到目前为止,我已经试过settings.fileTypes[0],这是行不通的。任何帮助表示赞赏,谢谢!jQuery通过索引获取数组值

var defaults = { 
     fileTypes : { 
      windows: 'Setup_File.exe', 
      mac: 'Setup_File.dmg', 
      linux: 'Setup_File.tar.gz', 
      iphone: 'iPhone App' 
     } 
    }, 
     settings = $.extend({}, defaults, options); 

回答

4

fileTypes是一个对象,因此它的属性不能通过索引号访问。

对象不保证任何已定义的顺序,因此如果需要按索引顺序维护项目,则需要使用数组。

要获得您的示例中的第一个项目,你会按名称这样做:

settings.fileTypes.windows; // will return 'Setup_File.exe' 

要存储为一个数组,其项目可以通过索引检索,试试这个:

var defaults = { 
     fileTypes : [ 
      'Setup_File.exe', 
      'Setup_File.dmg', 
      'Setup_File.tar.gz', 
      'iPhone App' 
     ] 
    }, 

settings.fileTypes[0]; // will return 'Setup_File.exe' 

或者你可以做一个对象数组,但我不认为这就是你之后:

var defaults = { 
     fileTypes : [ 
      {type: 'Setup_File.exe'}, 
      {type: 'Setup_File.dmg'}, 
      {type: 'Setup_File.tar.gz'}, 
      {type: 'iPhone App'} 
     ] 
    }, 

settings.fileTypes[0].type; // will return 'Setup_File.exe' 
+0

谢谢帕特里克dw。任何其他方式去存储在索引中访问类似的方式数组中的键和值? – Ryan 2010-09-10 23:50:07

+0

@Ryan - 你需要使用一个数组而不是一个对象。如果需要,您也可以使用一组对象。我会用这两个例子更新我的答案。 – user113716 2010-09-10 23:51:11

+0

美丽。看起来像前者会为我的需求做到最好。谢谢帕特里克! – Ryan 2010-09-10 23:57:14

0

也许你可以在应用程序设计允许的情况下使用解决方法。 它为我工作了一段时间。

var defaults = { 
    fileTypes : { 
     0: { 
      key: 'windows', 
      file: 'Setup_File.exe' 
     }, 
     1: { 
      key: 'mac', 
      file: 'Setup_File.dmg' 
     } 
    } 
}; 

在这样你可以访问索引中的第一级元素(按照特定的顺序),如果你需要从你的榜样的钥匙,他们还在那里。