从 JavaScript 中的数组到系列

from arrays to series in JavaScript

本文关键字:系列 数组 JavaScript      更新时间:2023-09-26

如何在 JavaScript 中将一些数组解析为系列?

例如:

由此:

var labels=[4, 5, 6];
var ff=[111, 222, 555];
var gg=[444, 777, 986];

对此:

series :[{
label : 4,
data : [{x : 111,
y : 444}]
},{
label : 5,
data : [{x : 222,
y : 777}]
},{
label : 6,
data : [{x : 555,
y : 986}]
}]

我试过这个:

var series = [];
    var data=[];
    for (var i = 0; i < labels.length; i++) {
        var dataobj={
                'x' : ff[i],
                'y' : gg[i]};
        data.push(dataobj);
        var obj = {
            'label' : labels[i],
            'data': data    
        };
        series.push(obj);
    }

假设所有 3 个数组的长度都相同

var series = [];
for (var i = 0; i < labels.length; i++) {
    var obj = {
        'label' : labels[i],
        'x' : ff[i],
        'y' : gg[i]
    };
    series.push(obj);
}

供您参考 - http://plnkr.co/edit/DEmNvRxNMPL5qeaTwK3S?p=preview

编辑 w.r.t. 更新的问题

var series = [];
for (var i = 0; i < labels.length; i++) {
    var obj = {
        'label' : labels[i],
         'data' : [{
          'x' : ff[i],
          'y' : gg[i]
         }]
      };
    series.push(obj);
}

供您参考 - http://plnkr.co/edit/dBI9GgPOttVv6TKzazlp?p=preview

假设它们将始终是相同的length

var labels = [4, 5, 6];
var ff = [111, 222, 555];
var gg = [444, 777, 986];
var series = [];
for (var i = 0; i < labels.length; i++) {
  var obj = {
    'label': labels[i],
    'x': ff[i],
    'y': gg[i]
  };
  series.push(obj);
}
console.log(series);

你可以写一个这样的函数:

var labels=[4, 5, 6];
var ff=[111, 222, 555];
var gg=[444, 777, 986];
function parse(labels,ff,gg,length){
var out=[],obj;  
for(var i=0;i<length;i++){
    obj={};
    obj['label']=labels[i];
    obj['x']=ff[i];
    obj['y']=gg[i];
    out.push(obj);
}
return out;
}
parse(labels,ff,gg,3);