数组/对象JSON data.map不是函数D3.js v3

时间:2019-07-14 13:20:54

标签: javascript jquery arrays object d3.js

我有一个动态JSON数据,它更改了API可能返回单个对象或数据数组,当API返回单个对象时,我在循环和数据映射上收到错误。但是我尝试不对数据应用forEach并单独获取数据并将其存储在数据中。我收到data.map错误不是函数。我有一个条形图,我想在下面显示数据。

 "City": {
    "Town": "Texas",
    "Number": "12"
  }

我有下面的代码,该代码显示定向到forEach和data.map的数据。如果返回大量数据,该代码将正确显示。

  data.forEach((d) => {
       d.town = d.Town;
       d.number = +d.Number;
  }); 

  const xScale = d3.scale.ordinal()
            .domain(data.map(d => d.town))
            .rangeRoundBands([0, width], 0.1);

  const yScale = d3.scale.linear()
            .domain([0, d3.max(data, d => d.number)])
            .range([height, 0]);

无论API返回单个还是多个值或数据,我如何能够在图形中处理动态数据?

1 个答案:

答案 0 :(得分:0)

JavaScript中的对象{}没有方法.map(),仅适用于数组[]。

因此,由于City是一个可以迭代的数组,因此为了使代码正常工作,请将data.map()更改为data.city.map()。