访问JavaScript D3中的嵌套对象

时间:2019-02-06 02:02:35

标签: javascript

我有类似这样的数据(有多个国家/地区)

[
  {country:"Country1", GDP : 12345, GDPgrowth : {year1:123, year2:234, year3:345}},
  {country:"Country2", GDP : 12345, GDPgrowth : {year1:123, year2:234, year3:345}}
]

我可以使用forEach并遍历“行”来访问每个国家/地区的数据。

但是,我不知道如何访问GDPgrowth中的各个值。我试图做一个嵌套的forEach,但是由于它不是一个函数而引发了错误,我认为这是因为GDPgrowth中的数据不是数组。我还尝试了通用的for循环方法,但似乎无法实现我想要的功能。

推荐使用什么方法获取这些值(理想情况下不必每次都按名称year1year2year3进行选择)

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用Object.values()获取包含对象值的数组,而您可以使用forEach()遍历它们。

const input = [
    {country: "Country1", GDP: 12345, GDPgrowth: {year1:123, year2:234, year3:345}},
    {country:"Country2", GDP : 12345, GDPgrowth : {year1:123, year2:234, year3:345}}
];

input.forEach(x =>
{
    console.log("country: " + x.country);
    Object.values(x.GDPgrowth).forEach(y => console.log("year: " + y))
});

此外,我建议您也阅读有关Object.keys()Object.entries()的信息。