2013-08-28 242 views
-1

我希望有一個非常簡單的問題,但一個對象在JS的一個關鍵的名字,如果我的代碼越來越

console.log("my args", args); 

而且回來就是

Object { pageList1=null} 

怎麼做的結果我得到的名稱pageList1

它並不重要,這是空我需要的只是名稱pageList1 ..

這是我試圖

parse: function (result, args) { 
    var myKey = Object.keys(args); 

    return result.data.myKey; 
} 

確定,所以使用的答案我更新的代碼是

parse: function (result, args) { 

    for (variable in args) { 

     return result.data.variable; 
    } 

} 

但是,這並不像剛纔名稱變量作爲JSON結構,那不是..

行,所以需要改變的JSON的電話時,得到的答覆是

parse: function (result, args) { 

    var pageListVariable = Object.keys(args)[0]; 

    return result.data[pageListVariable]; 
} 

。需要替換爲[]

+0

'[「pageList1」] [0] - >「pageList1」' – zsong

回答

1

Object.keys爲訪問對象的密鑰的好方法,但它確實給你所有鍵,在字符串數組。順便說一句,你的對象碰巧只有一個鍵,但該函數仍然會產生一個數組,儘管只有一個字符串。 (事實上​​,如果將單鍵對象視爲特殊情況並只產生一個字符串,在迭代結果之前總是需要進行類型檢查)會非常不方便。

如果在您的具體情況下,您知道知道將始終只有一個密鑰,那麼立即通過索引立即訪問Object.keys(args)[0]是完全正確的。

1

您應該使用for in

for (variable in object) { 
    console.log(variable) 
} 
+0

thanks ..在上面添加了你的代碼,但最後一個litle justion也在那裏 – Dan

+0

這是什麼? – thecodejack

+1

Object.keys'最接近的等價物是'for ... in'與'hasOwnProperty'條件配對。就其本身而言,兩者會產生不同的結果,如果在代碼中的其他地方將任何屬性添加到Object.prototype中,這可能會導致問題。 –

0

希望這將幫助:

var keys = []; 
for (x in args) { 
    console.log("Key=>" + x +", val="+args[x]); 
    keys.push (x); //where x is the key 
} 
alert(keys);