Javascript 图表未显示对象的数据数组

Javascript 图表未显示对象的数据数组,javascript,d3.js,Javascript,D3.js,我的D3 js图表没有显示数据,请指导我如何正确填充线条和区域中的数据 数据代码-这就是我生成数据的方式 var data = []; var currentValue = 0; var random = d3.random.normal(0, 20); var obj = {}; for (var i = 0; i < 20; i++) { var currentDate = new Date(); currentDate.setDate(currentDate.getDate(

我的D3 js图表没有显示数据,请指导我如何正确填充线条和区域中的数据

数据代码-这就是我生成数据的方式

var data = [];
var currentValue = 0;
var random = d3.random.normal(0, 20);
var obj = {};
for (var i = 0; i < 20; i++) {
  var currentDate = new Date();
  currentDate.setDate(currentDate.getDate() + i);

  if (i === 0) {
    currentValue = 0;
  } else if (i === 1) {
    currentValue = 0;
  } else if (i === 5) {
    currentValue = 0;
  } else if (i === 10) {
    currentValue = 0;
  } else if (i === 19) {
    currentValue = 0;
  } else {
    currentValue = currentValue + random();
  }
  obj.startTime = currentDate;
  obj.magnitude = currentValue;
  data.push(obj);
}

console.log(data);
var数据=[];
var currentValue=0;
var random=d3.随机.正常(0,20);
var obj={};
对于(变量i=0;i<20;i++){
var currentDate=新日期();
currentDate.setDate(currentDate.getDate()+i);
如果(i==0){
currentValue=0;
}else如果(i==1){
currentValue=0;
}否则如果(i==5){
currentValue=0;
}否则如果(i==10){
currentValue=0;
}否则如果(i==19){
currentValue=0;
}否则{
currentValue=currentValue+random();
}
obj.startTime=当前日期;
obj.幅值=当前值;
数据推送(obj);
}
控制台日志(数据);
我这里有一个代码沙盒,请引导我-


谢谢。我是D3js新手。

这里的问题与D3无关,这只是Javascript中对象引用的工作方式。当你这么做的时候

obj.startTime = currentDate;
obj.magnitude = currentValue;
data.push(obj);
。。。您正在更改同一对象,这是

var obj = {};
。。。并将其推送到
数据
数组。因此,所有属性都是相同的(上一次迭代)。我们可以很容易地证明这一点。看看这个数组,它有10个对象:

constobj={foo:42};
常量myArray=d3.range(10.map)(()=>obj);
console.log(JSON.stringify(myArray))

谢谢你的帮助,我没有检查数据引用。我直接在图表中传递数据,为什么它不被接受,我遗漏了什么好吧,那是另一个问题。我建议你发布一个新问题,包括相关细节。当然,没问题。