2010-09-10 199 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' 
     } 
    } 
}; 

在這樣你可以訪問索引中的第一級元素(按照特定的順序),如果你需要從你的榜樣的鑰匙,他們還在那裏。