Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用D3访问对象数组?_Javascript_Json_Svg_D3.js - Fatal编程技术网

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

Javascript 如何使用D3访问对象数组?,javascript,json,svg,d3.js,Javascript,Json,Svg,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; }); var data = [ {"date":"

我有一个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;
});
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;
我只想解析一个内嵌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;
});
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;
但是如果使用与我在上面第一个方法中使用的相同的代码,这将不起作用。

我已经创建了一个类似的Fiddle,但是我可以看到我对数组的解析是错误的,并且我的图表元素被创建了多次(与数组长度相同的次数)。当我从外部加载数据时,不会发生这种情况

请看我从第35行开始的评论


如何重写代码以正确解析JSON数组?我被难住了!非常感谢

这似乎是您的代码输入错误:

在第64行左右,我想您需要:

data.forEach(function(d) {
  d.date = parseDate(d.date);
  d.close = +d.close;
}
);
更改是在此处终止forEach,而不是封装其余代码的forEach块


然后,删除文件末尾的“;”,我看它是正确的。

你的问题中没有JSON。这就是为什么有另一双眼睛可以帮上大忙的原因!在盯着代码看了12个小时后,这样一件简单的事情可能会引起如此多的悲伤。非常感谢你。