我的应用程序中有一些代码如下:
var msg = data.data.modelState[Object.keys(data.data.modelState)[0]];
有人可以解释一下这段代码的Object.keys部分是做什么的,并让我知道data.datamodelState对象是什么样的。
现在我的理解是这段代码不起作用,但围绕它的代码并非如此,我无法通过调试来查找。
答案 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.