DCD*_*CDC 2 javascript arrays dictionary
让我们考虑以下代码
var array = [];
var obj =[{id: "xxxxx", name: "Friend name"}, {id: "xxxxx", name: "Friend name"}]
for (x in obj){
array.push(x.name)
}
Run Code Online (Sandbox Code Playgroud)
我最终得到一个长度适当的数组,但其中充满了空值。我将此obj.name更改为随机字符串,并且一切正常。值得一提的是,适当的代码涉及angular.js,并且在迭代解析的json时遇到了该问题。但是即使我粘贴了这个简单的称为“ obj”的字典数组,问题仍然存在。
我想出了问题一定是将字典值推入数组,对吗?如果是,怎么了?
提前致谢!
小智 5
您的代码的问题是,在代码中
for (x in obj)
Run Code Online (Sandbox Code Playgroud)
x将是obj中每个元素的索引,这意味着您将获得obj.indexOf(element)而不是获取元素本身。
在您的情况下,x将为0、1。因此x.name将是未定义的。
修改您的代码,如下所示:
var array = [];
var obj =[{id: "xxxxx", name: "Friend name"}, {id: "xxxxx", name: "Friend name"}]
for (x in obj){
array.push(obj[x].name)
}
Run Code Online (Sandbox Code Playgroud)
而且你应该很好走。