Object.keys应用于Javascript变量时如何工作?
我的应用程序中有如下代码:Object.keys应用于Javascript变量时如何工作?,javascript,Javascript,我的应用程序中有如下代码: var msg = data.data.modelState[Object.keys(data.data.modelState)[0]]; 有人能解释一下这段代码的Object.keys部分在做什么,并告诉我data.datamodelState对象是什么样子的吗 目前我的理解是,此代码不起作用,但其周围的代码不起作用,因此我无法调试以找出原因。Object.keys()返回该对象的键数组。在代码中,您正在访问数组的第一个元素。i、 e.data.data.m
var msg = data.data.modelState[Object.keys(data.data.modelState)[0]];
有人能解释一下这段代码的Object.keys部分在做什么,并告诉我data.datamodelState对象是什么样子的吗
目前我的理解是,此代码不起作用,但其周围的代码不起作用,因此我无法调试以找出原因。Object.keys()
返回该对象的键数组。在代码中,您正在访问数组的第一个元素。i、 e.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.
它将成为
var msg = data.data.modelState[["tmpkey"][0]];
var msg = data.data.modelState["tmpkey"]; //Simply it will return value of tmpKey property.
发生这种情况是因为
modelState
没有数字键,但可能有一些以前不知道的字符串键。因此,modelState将包含多个具有字符串键的对象,可能还有一个字符串变量?@Anne,这里您只访问第一个键。Object.keys(data.data.modelState)[0]将仅返回第一个键。@Anne,只有当您不知道对象中的键时,此方法才有效。