Object.keys在应用于Javascript变量时如何工作?

时间:2015-08-05 10:28:00

标签: javascript

我的应用程序中有一些代码如下:

   var msg = data.data.modelState[Object.keys(data.data.modelState)[0]];

有人可以解释一下这段代码的Object.keys部分是做什么的,并让我知道data.datamodelState对象是什么样的。

现在我的理解是这段代码不起作用,但围绕它的代码并非如此,我无法通过调试来查找。

1 个答案:

答案 0 :(得分:1)

Object.keys()返回该对象的键数组。在您的代码中,您正在访问数组的第一个元素。即data.data.modelState的第一个键。

此代码只是为了获取data.data.modelState的第一个键的值。

  

例如

假设

 data.data.modelState={tmpkey:"Some Value"}
 var msg = data.data.modelState[Object.keys(data.data.modelState)[0]];
 console.log(Object.keys(data.data.modelState)[0]); //will Print ["tmpkey"]
 console.log(msg); //It will print "Some Value";

您可以使用[]访问任何对象的键;在这里,您正在访问第一个密钥。

var msg = data.data.modelState[Object.keys(data.data.modelState)[0]];

这将成为

var msg = data.data.modelState[["tmpkey"][0]];

它会变成

var msg = data.data.modelState["tmpkey"]; //Simply it will return value of tmpKey property.