2015-11-04 54 views
1

我想使用jquery/javascript根据e值对json数据进行分类。例如。如果e:0,则将其存储在单独的数组1中并获取计数,如果e:1将其存储在数组2中并获取计数等等。这是我的JSON文件item.json分类json数据并将其存储在单独的数组中

{ 
"mydata":[ 
    { 
     "xvalue": "4 Oct 2015", 
     "yvalue": 53, 
      "e": 3 
    }, { 
     "xvalue": "5 Oct 2015", 
     "yvalue": 67, 
      "e": 3 
    }, { 
     "xvalue": "6 Oct 2015", 
     "time":"1.00 PM", 
      "yvalue": 99, 
      "e": 2 
    }, { 
     "xvalue": "7 Oct 2015", 
     "yvalue": 80, 
      "e": 1 
    }, { 
     "xvalue": "8 Oct 2015", 
     "yvalue": 160, 
      "e": 0 
    }] 
} 

如何调用一个JSON文件和推对象从JSON到数组?我的目标是计算e的每个类别的百分比。下面是我粗略的代码片段,我知道它缺少很多像loop.Please帮助完成它。

//some code for calling json, how to call I don't understand 
var a0=[], a1=[], a2=[], a3=[]; //empty array for each category 
     var e0=0, e1=0, e2=0, e3=0; //counter for each category 

     if(e==0){ 
     e0++; 
     } 
     if(e==1){ 
     e1++; 
     } 
     if(e==2){ 
     e2++; 
     } 
     if(e==3){ 
     e3++; 
     } 
     var n= mydata.length; // calculate total no. of e's 
     e0per= (e0/n) *100; 
     e1per= (e1/n) *100; 
     e2per= (e2/n) *100; 
     e3per= (e3/n) *100; 
     console.log(e0per); 
+1

错误的JSON格式'“myData”= ['应该是''myData':[' – Blindman67

+0

]谢谢指出。我现在改正了 –

+0

使用我的答案有什么好运? –

回答

1
data = { 
    "mydata":[ 
     { 
      "xvalue": "4 Oct 2015", 
      "yvalue": 53, 
       "e": 3 
     }, { 
      "xvalue": "5 Oct 2015", 
      "yvalue": 67, 
       "e": 3 
     }, { 
      "xvalue": "6 Oct 2015", 
      "time":"1.00 PM", 
       "yvalue": 99, 
       "e": 2 
     }, { 
      "xvalue": "7 Oct 2015", 
      "yvalue": 80, 
       "e": 1 
     }, { 
      "xvalue": "8 Oct 2015", 
      "yvalue": 160, 
       "e": 0 
     }] 
    }; 

// Here's the actual categorization part 
categories = {}; 
for (var i = 0; i < data.mydata.length; i++) { 
    var item = data.mydata[i]; 
    var e = item.e; 
    if (!(e in categories)) categories[e] = []; 
    categories[e].push(item); 
} 

console.log(categories) 

这种方法的好处是,你不必担心不同的值"e"指数可以有 - 不同的列表中创建第一次"e"新的唯一值发现。

相关问题