2013-08-28 193 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);