2017-08-31 36 views
-1

如何將Json數據轉換爲Array。我不能做到這一點 ,我有JSON數據爲:如何將Json轉換爲Array在javascript中爲chart.js

var setdata = [{ 
 
\t "data": [{ 
 
\t   "month" : "January", 
 
\t   "name" : "Alex", 
 
    \t   "count" : 10 
 
\t }] 
 
\t }, 
 
\t { 
 
\t "data": [{ 
 
\t   "month" : "February", 
 
\t   "name" : "Alex", 
 
    \t   "count" : 20 
 
\t }, 
 
\t { \t 
 
\t "data": [{ 
 
\t   "month" : "February", 
 
\t   "name" : "John", 
 
    \t   "count" : 30 
 
\t }, 
 
\t { \t 
 
\t "data": [{ 
 
\t   "month" : "February", 
 
\t   "name" : "Mark", 
 
    \t   "count" : 40 
 
\t }] 
 
       }, 
 
\t { 
 
\t "data": [{ 
 
\t   "month" : "March", 
 
\t   "name" : "Alex", 
 
    \t   "count" : 10 
 
\t }, 
 
\t { \t 
 
\t   "month" : "March", 
 
\t   "name" : "John", 
 
    \t   "count" : 20 
 
\t }] 
 
\t } 
 
    ]

我要轉換爲數組:

var months = ["January", "February", "March"] 

var data =  [10, 0, 0], 
       [0, 20, 10], 
       [0, 30, 20], 
       [0, 40, 0] 

我想使用setData創建堆積圖。 js,你能爲我做這個嗎?請幫幫我。 謝謝。

+0

爲什麼不能ü嘗試對象ARRY? –

+0

如何做到這一點? – jane

+0

請檢查這種格式。 https://jsfiddle.net/caravinden/zpzpbf85/。這將是更好的迭代和訪問 –

回答

0

你可以試試這個

var data = [{"month":"January","name":"Alex","count":10},{"month":"February","name":"Alex","count":20},{"month":"February","name":"John","count":30},{"month":"February","name":"Mark","count":40},{"month":"March","name":"Alex","count":10},{"month":"March","name":"John","count":20}]; 
 

 
// TO FIND UNIQUE ARRAY 
 
var months = data.map(function(t){ return t.month}); 
 
uniqueMonths = months.filter(function(item, pos) { 
 
    return months.indexOf(item) == pos; 
 
}); 
 
console.log('UNIQUE MONTHS:- '+uniqueMonths); 
 

 
var names = data.map(function(t){ return t.name}); 
 
uniqueNames = names.filter(function(item, pos) { 
 
    return names.indexOf(item) == pos; 
 
}); 
 
console.log('UNIQUE NAMES:- '+uniqueNames); 
 
var countArr = {}; 
 
uniqueNames.forEach(function(d){ 
 
\t var arr = []; 
 
\t uniqueMonths.forEach(function(k){ 
 
\t \t arr.push(getValue(d,k)); 
 
\t }); 
 
\t countArr[d] = arr; 
 
}); 
 
console.log('COUNT ARRAY:- '+JSON.stringify(countArr)); 
 

 
// To get value from the array 
 
function getValue(name, month){ 
 
\t var value = 0; 
 
\t data.forEach(function(d){ 
 
\t \t if(d.name == name && d.month == month){ 
 
\t \t \t value = d.count; 
 
\t \t } 
 
\t }); 
 
\t return value; 
 
}

+0

謝謝。但如何從[[10,20,10],[0,30,20],[0,40,0]] => [10,20,10],[0,30,20],[ 0,40,0]因爲我創建了圖表,它不顯示圖表。 – jane

+0

請檢查以上更新的代碼段 –

+0

謝謝。它可以堆積條形圖嗎?我不確定它是正確的嗎? – jane