Javascript 循环遍历数据并将其传递给图表

Javascript 循环遍历数据并将其传递给图表,javascript,json,apexcharts,Javascript,Json,Apexcharts,我有一个数据数组,用来绘制折线图。我用的是ApexCharts 让testData=[ { 单元id:5833307, 日期时间:[“2019-05-07 11:28:16.406795+03”、“2019-05-07 11:28:38.764628+03”、“2019-05-07 12:18:38.21369+03”、“2019-05-07 12:33:47.889552+03”、“2019-05-08 08:45:51.154047+03”], rsrq:[“108”、“108”、“108

我有一个数据数组,用来绘制折线图。我用的是ApexCharts

让testData=[
{
单元id:5833307,
日期时间:[“2019-05-07 11:28:16.406795+03”、“2019-05-07 11:28:38.764628+03”、“2019-05-07 12:18:38.21369+03”、“2019-05-07 12:33:47.889552+03”、“2019-05-08 08:45:51.154047+03”],
rsrq:[“108”、“108”、“108”、“108”、“109”]
},
{
单元id:2656007,
日期时间:[“2019-07-23 15:29:16.572813+03”、“2019-07-23 15:29:16.71938+03”、“2019-07-23 15:29:16.781606+03”、“2019-07-23 15:29:50.375931+03”、“2019-07-23 15:30:01.902013+03”],
rsrq:[“120”、“119”、“116”、“134”、“114”]
}
];
让datasetValue=[];

for(设x=0;x,因为您在forloop之外声明了一个数组

let datasetValue = { 
    chart: {
      height: 380,
      width: "100%",
      type: "line"
    },
    stroke: {
      curve: 'smooth',
      width: 1.5,
    },
    markers: {
      size: 4,
    },
    legend: {
      show: true,
      position: 'top'
    },  
    series: [],
    xaxis: {
      categories: [],
      title: {
        text: "Date"
      }
    },
    yaxis: {
      title: {
        text: "RSSI"
      }
    }
  };
内部为循环,你应该这样做

    datasetValue.series.push(
          {
            name: testData[x].cell_id,
            data: testData[x].rsrq
          });
    datasetValue.xaxis.categories.push(testData[x].datetime);

您应该将值推送到数组内部,而不是在每次迭代中重新分配它

,因为您是在forloop外部声明数组

let datasetValue = { 
    chart: {
      height: 380,
      width: "100%",
      type: "line"
    },
    stroke: {
      curve: 'smooth',
      width: 1.5,
    },
    markers: {
      size: 4,
    },
    legend: {
      show: true,
      position: 'top'
    },  
    series: [],
    xaxis: {
      categories: [],
      title: {
        text: "Date"
      }
    },
    yaxis: {
      title: {
        text: "RSSI"
      }
    }
  };
内部为循环,你应该这样做

    datasetValue.series.push(
          {
            name: testData[x].cell_id,
            data: testData[x].rsrq
          });
    datasetValue.xaxis.categories.push(testData[x].datetime);

您应该将值推送到数组中,而不是在每次迭代中重新分配它

通过对序列和类别进行分组来重新构造测试数据

let series = [];
let categories = [];

for (let x = 0; x < testData.length; x++) {
  series.push({
    name: testData[x].cell_id,
    data: testData[x].rsrq
  });
  categories.concat(testData[x].datetime);
}
let series=[];
设类别=[];
for(设x=0;x
让testData=[{
单元id:5833307,
日期时间:[“2019-05-07 11:28:16.406795+03”、“2019-05-07 11:28:38.764628+03”、“2019-05-07 12:18:38.21369+03”、“2019-05-07 12:33:47.889552+03”、“2019-05-08 08:45:51.154047+03”],
rsrq:[“108”、“108”、“108”、“108”、“109”]
},
{
单元id:2656007,
日期时间:[“2019-07-23 15:29:16.572813+03”、“2019-07-23 15:29:16.71938+03”、“2019-07-23 15:29:16.781606+03”、“2019-07-23 15:29:50.375931+03”、“2019-07-23 15:30:01.902013+03”],
rsrq:[“120”、“119”、“116”、“134”、“114”]
}
];
let级数=[];
设类别=[];
for(设x=0;x

通过对系列和类别进行分组来重新构造测试数据

let series = [];
let categories = [];

for (let x = 0; x < testData.length; x++) {
  series.push({
    name: testData[x].cell_id,
    data: testData[x].rsrq
  });
  categories.concat(testData[x].datetime);
}
let series=[];
设类别=[];
for(设x=0;x
让testData=[{
单元id:5833307,
日期时间:[“2019-05-07 11:28:16.406795+03”、“2019-05-07 11:28:38.764628+03”、“2019-05-07 12:18:38.21369+03”、“2019-05-07 12:33:47.889552+03”、“2019-05-08 08:45:51.154047+03”],
rsrq:[“108”、“108”、“108”、“108”、“109”]
},
{
单元id:2656007,
日期时间:[“2019-07-23 15:29:16.572813+03”、“2019-07-23 15:29:16.71938+03”、“2019-07-23 15:29:16.781606+03”、“2019-07-23 15:29:50.375931+03”、“2019-07-23 15:30:01.902013+03”],
rsrq:[“120”、“119”、“116”、“134”、“114”]
}
];
let级数=[];
设类别=[];
for(设x=0;x

您试图犯的第一个错误是将“datasetValue”定义为数组变量

datasetValue=yourdata;//将数据推入数组时出错
由于循环和赋值,您试图将一个对象赋值给只包含最后结果的数组变量。 相反,使用数组的push方法将数据推送到数组中

datasetValue.push(yourdata);//将数据推送到数组的正确方法
因此,将“datasetValue”定义为数组是没有用的

为了实现您的目标,您可以应用以下循环

var数据集值;
var系列=[];
var类别=[];

对于(设x=0;x),您试图犯的第一个错误是将“datasetValue”定义为数组变量

datasetValue=yourdata;//将数据推入数组时出错
由于循环和赋值,您试图将一个对象赋值给只包含最后结果的数组变量。 相反,使用数组的push方法将数据推送到数组中

datasetValue.push(yourdata);//将数据推送到数组的正确方法
因此,将“datasetValue”定义为数组是没有用的

为了实现您的目标,您可以应用以下循环

var数据集值;
var系列=[];
var类别=[];

for(设x=0;x我将for循环移动到datasetValue定义之后,只向其中添加系列,并更改
xaxis

for( let x=0; x<testData.length; x++ )
{
    datasetValue.series.push({
        name: testData[x].cell_id,
        data: testData[x].rsrq
    })
}

for(让x=0;x我在datasetValue定义之后移动for循环,只向其中添加系列,并更改
xaxis

for( let x=0; x<testData.length; x++ )
{
    datasetValue.series.push({
        name: testData[x].cell_id,
        data: testData[x].rsrq
    })
}

for(设x=0;xy)您的意思可能是
将数据推送到数组中,而不是用
datasetValue=
覆盖它。可能最好是在您的问题中添加您对
datasetValue
的意思