d3.extent() 在 d3js 执行中被跳过

d3.extent() gets skipped in d3js execution

我正在尝试为下面的 xDomain 变量赋值,但是当我使用 chrome 调试器时,该值未定义,并且控制台不打印 console.log("DOMAIN" + element.created) 行。是什么导致 d3 查看此行?

d3.json("tweets.json", function(error, data){

  if (error) return console.warn(error);

  console.log(data);

  //THIS PART GETS SKIPPED OVER
  var xDomain = d3.extent(data, function(element){
      console.log("DOMAIN" + element.created);
      time = parseTweetTime(element.created);
      return parseTime.parse(time);
  });

  xScale.domain(xDomain);



  var dots = svg.selectAll("circle")
      .data(data.tweet)
      .enter()
      .append("circle");

 dots.attr("r", function(d, i){ 
  return 5;

})
  .attr("cx", function(d){ 
    console.log(d.created);
    date = parseTime.parse(d.created);
    return xScale(date);
  })
  .attr("cy", function(d){ return yScale(d.text.length)})
  .style("fill", "black");

});

编辑: 这是 tweets.json 文件

的示例
{
   "tweet":[
           {"text": "hello"}
           {"text": "goodbye"}
    ]
}

错误在于您计算范围的方式。 因为你的数据集是这样的:

{
   "tweet":[
           {"text": "hello"}
           {"text": "goodbye"}
    ]
}

所以不要这样做:

d3.extent(data, function(element){ ...}

这样做:

d3.extent(data.tweet, function(element){ ... });