无法使用点符号或方括号符号访问嵌套对象数组

时间:2019-04-08 15:28:31

标签: javascript object nested

我需要访问嵌套在项目列表对象中的要素属性数组。看起来像这样。

var itemsList = {
    _searchedFeatures: {
      Wildlife Management Areas: [{}, {}, {}]
    }
}

我需要访问Wildlife Management Areas(WMA)数组并循环遍历,从数组中的每个要素中提取一个属性值,然后将该值推到另一个数组中。我遇到的问题是我无法访问WMA阵列。

我尝试使用点表示法和括号表示法的组合来获取WMA数组,但是我总是无法定义。我知道WMA在那里并且包含对象列表,因为访问_searchFeatures对象时可以看到它们。

我尝试过

itemList._searchedFeatures

返回数组。我可以在chrome控制台中看到该数组,但是我需要获取其中的值或该数组的值。

Chrome控制台: 搜索的功能

{}
  Wildlife Management Areas: (5) [c, c, c, c, c] //I need to get to this 
  array!

此代码不起作用:

itemsList._searchedFeatures["Wildlife Management Areas"]; 

我希望看到索引的功能清单,看起来像这样:

0: {...}
1: {...}
2: {...}

但是,相反,我只是不确定。有趣的是,当我将鼠标悬停在控制台中的“野生动物管理区域”上时,我看到的是看起来像是JavaScript点表示法的解决方案,但我不知道如何复制它。这就是我所看到的:

[""Wildlife Management Areas""]

我从未见过双引号,这显然行不通,但是我不知道如何解释。请让我知道我不明白的地方。

2 个答案:

答案 0 :(得分:0)

这有效:

setTimeout(function() {
    var wmaArray = itemList._searchedFeatures['wildlife Management Areas'];
    console.log("WMAs ", wmaArray);
}, 2000);

要花很长时间才能得到结果,所以我不得不延长超时时间。我知道这不是最好的方法,我确实希望为此做一个承诺,但是我仍在学习javascript并不太擅长这些!

答案 1 :(得分:-1)

您应该在“野生动物管理区”中加引号,以使其起作用

var itemsList = {
    _searchedFeatures: {
        'Wildlife Management Areas': [{}, {}, {}]
    }
}