2016-03-01 76 views
1

說出如果您無法通過像objectName.objectItem這樣的點符號訪問對象內的某個項目,即它在時間上具有隨機名稱。有沒有辦法像第二個項目一樣選擇訪問它?如何選擇對象內的第n個項目

如何只知道它是第二個項目有?:鍵

something: { 
    item1: "text", 
    item2: "text", 
    item3: "text:, 
    ... 
} 
+0

鍵的順序不是固定的JavaScript對象 – gurvinder372

+0

您可以使用Object.keys();但順序不能保證是你期望的; – maioman

回答

6

順序不是固定的JavaScript對象獲得ITEM2從該對象。

您可以嘗試

var secondKey = Object.keys(something)[1]; //fetched the key at second index 
alert(something[secondKey ]); 
0

對象鍵沒有順序,但是您可以定義訂單的鑰匙你自己的二元關係。

說,你只考慮開始與"item"鍵和數字後綴,如item23,那麼你就可以按自己的定義翻譯到這個數目23並決定item23是你的數組中的項目。

請注意,這完全是任意的,只有在你想要的代碼中才有它。也就是說,你可以實現一個過濾所有鍵的功能(只考慮那些以"item"開頭的鍵),將數字後綴解析爲一個數字,然後將其與你想要的項目索引進行比較。

此代碼不正是我一直認爲你想做的事:

function nth(obj, n) 
{ 
    var key, i; 

    for (key in obj) 
    { 
    if (obj.hasOwnProperty(key)) // always do this when you scan an object 
    { 
     if (key.indexOf("item") === 0) // this is the filter 
     { 
     i = parseInt(key.substring(4), 10); // parse the numeral after "item" 
     if (i === n) 
     { 
      return obj[key]; // return this value 
     } 
     } 
    } 
    } 

    return null; 
}