如何使用D3访问对象数组?

Cri*_*ter 8 javascript svg json d3.js

我有一个D3图表,我试图解析内联JSON格式的数组,而不是从外部加载数据.

而不是做这样的事情:

d3.json("data/tsx.json", function (error, data) {
    data.forEach(function (d) {
        d.dateOrig = d.date;
        d.date = parseDate(d.date);
        d.close = +d.close;
});
Run Code Online (Sandbox Code Playgroud)

我只想解析内联JSON格式的数组,如下所示:

var data = [
  {"date":"1-May-13","close":58.13},
  {"date":"30-Apr-13","close":53.98},
  {"date":"27-Apr-13","close":67.00},
  {"date":"26-Apr-13","close":89.70},
  {"date":"25-Apr-13","close":99.00},
  {"date":"24-Apr-13","close":130.28},
  {"date":"23-Apr-13","close":166.70},
  {"date":"20-Apr-13","close":234.98},
  {"date":"19-Apr-13","close":345.44},
  {"date":"18-Apr-13","close":443.34},
];

  data.forEach(function(d) {
    d.date = parseDate(d.date);
    d.close = +d.close;
Run Code Online (Sandbox Code Playgroud)

但是这不能使用我在上面第一种方法中使用的相同代码.

我已经创建了一个有效的小提琴,但是我可以看到我正在解析数组错误并且我的图表元素被多次创建(与数组长度相同的次数).当我从外部加载数据时,这不会发生.

从这个小提琴的第35行开始看我的评论.

http://jsfiddle.net/Critter/Hc7zD/5/

如何重写我的代码以正确解析JSON数组?我很难过!非常感谢!

cmo*_*key 5

它似乎是代码中的拼写错误:

在第64行左右,我想你想:

data.forEach(function(d) {
  d.date = parseDate(d.date);
  d.close = +d.close;
}
);
Run Code Online (Sandbox Code Playgroud)

更改是在那里终止forEach,而不是封装其余代码的forEach块.

然后,删除尾随");" 在文件的末尾,它看起来对我来说.