将数组传递给Flot图表

时间:2017-09-28 12:06:46

标签: javascript jquery json ajax flot

正如我们通常所知,我们可以将数组传递给Flot Aria Chart。

var data2 = [
        [0, 1], [1, 0], [2, 2], [3, 0], [4, 1], [5, 3], [6, 1], [7, 5], [8, 2], [9, 3], [10, 2], [11, 1], [12, 0], [13, 2], [14, 8], [15, 0], [16, 0]
    ];

我从文件中获取json输出,我需要将其转换为json对象,如' data2'在上面的代码中。我正在运行这样的循环。

var data1 = [];
    var json = $.getJSON( "config/tsconfig.json", function () {
        $.each( json.responseJSON, function( i, item ) {

        });
    });

就像这样的json文件。

[[2,"2017-09-27",50,30,25],[2,"2017-09-28",70,50,49],[3,"2017-09-27",50,45,5],[3,"2017-09-28",100,95,90]]

如何在代码一中创建json对象。任何建议放在$ .each循环中?

1 个答案:

答案 0 :(得分:2)

您必须使用map方法。

此外,$.getJSON正在执行asynchronous,因此您需要使用callback函数。

getResponse(callback){
    $.getJSON( "config/tsconfig.json", function (response) {
      let result=response.map(function(item){
         return [item[0],item[2]];
       });
       callback(result);
    });
}

getResponse(function(response){
  console.log(response);
});

let array=[[2,"2017-09-27",50,30,25],[2,"2017-09-28",70,50,49],[3,"2017-09-27",50,45,5],[3,"2017-09-28",100,95,90]]
array=array.map(function(item){
  return [item[0],item[2]];
});
console.log(array);

使用arrow 函数

array=array.map(item=> [item[0],item[2]]);