意外的令牌“for”javascript

时间:2016-05-02 11:51:47

标签: javascript ajax morris.js

我正在尝试从json文件中恢复数据并将其显示在morris linear chart中。 在我显示数据之前,我正试图测试是否在alert测试中收到了数据。

这是代码:

$.ajax({
type: 'GET',
contentType : 'application/json',
dataType: 'JSON',
url: 'json', // getchart.php
data: "",
success: function(json) {       
        $.getScript('http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js',function(){
            $.getScript('http://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.0/morris.min.js',function(){

      Morris.Line({
            element: 'line-example',
            data: [for (var i=0;i<json.length;i++){
                 var obj=json[i];
                 for (var key in obj){
                     alert obj[key];}
                }
                    ],
            xkey: 'year',
            ykeys: ['value'],
            labels: ['Value']
          });
        });
    });
}

});

这是ajax回复:

 [{"time":"11:01:00","val1":123,"val2":124,"val3":11,"val4":140,"val5":100},
  {"time":"11:11:00","val1":140,"val2":100,"val3":13,"val4":100,"val5":120}] 

但我在Chrome控制台中有“意外令牌”?

1 个答案:

答案 0 :(得分:0)

循环返回数组的方法是使用本机Array#forEach。 如果要转换返回的json对象数组,可以使用Array#map,如果要返回完全不同的类型,请使用Array#reduce

作为示例,数据可以是像[[val1,val2], [val1, val2]]

这样的数组数组

ES5方式

data = json.map(function(item){ return [item.val1, item.val2]; })

ES6方式

data = json.map( item => [item.val1, item.val2] )  

示例代码

Morris.Line({
  element: 'line-example',
  data: data,
  xkey: 'year',
  ykeys: ['value'],
  labels: ['Value']
})