JavaScript-无法将字典值添加到数组

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)

而且你应该很好走。