JSONデータのソートについて
下記のJSONデータを名前ごとに取り出して時間でソートするようなプログラムを作成しております。データは一部のみ記載しております。
下記エラーの対処方法を教えて頂けないでしょうか。
JSON
1[{ 2 "time": "2018-07-20T03:31:57.000Z", 3 "temp": 15.29, 4 "devName": "test1" 5}, { 6 "time": "2018-07-20T03:31:57.000Z", 7 "temp": 12.15, 8 "devName": "test2" 9}, { 10 "time": "2018-07-20T03:31:57.000Z", 11 "temp": 38.15, 12 "devName": "test3" 13}, { 14 "time": "2018-07-20T03:31:57.000Z", 15 "temp": 27.15, 16 "devName": "test4" 17}, { 18 "time": "2018-07-20T03:32:57.000Z", 19 "temp": 16.15, 20 "devName": "test1" 21}, { 22 "time": "2018-07-20T03:32:57.000Z", 23 "temp": 25.15, 24 "devName": "test2" 25}, { 26 "time": "2018-07-20T03:32:57.000Z", 27 "temp": 24.15, 28 "devName": "test3" 29}, { 30 "time": "2018-07-20T03:32:57.000Z", 31 "temp": 23.15, 32 "devName": "test4" 33}, { 34 "time": "2018-07-20T03:33:57.000Z", 35 "temp": 22.15, 36 "devName": "test1" 37}, { 38 "time": "2018-07-20T03:33:57.000Z", 39 "temp": 30.32, 40 "devName": "test2" 41}, { 42 "time": "2018-07-20T03:33:57.000Z", 43 "temp": 39.15, 44 "devName": "test3" 45}, { 46 "time": "2018-07-20T03:33:57.000Z", 47 "temp": 32.15, 48 "devName": "test4" 49}]
発生している問題・エラーメッセージ
Uncaught TypeError: data.sort is not a function
該当のソースコード
javascript
1 window.onload = function () { 2 var getData = []; 3 var data1 = []; 4 $.getJSON("URL", getData) 5 .done(function (getData) { 6 // console.log(getData); 7 var data1 = JSON.stringify(getData); 8 makeChart(data1); 9 }) 10 };
上記でデータを取得
javascript
1function makeData(data) { 2 var chartData = []; 3 data.sort(function (a, b) { 4 return (new Date(a.time).getTime() > new Date(b.time).getTime() ? 1 : -1); 5 }); 6 for (var i = 0, len = data.length; i < len; i++) { 7 var filterdata = data.filter(function (x) { 8 return x.devName === "test"; 9 }); 10 } 11 for (var i = 0, len2 = filterdata.length; i < len2; i++) { 12 var visits = filterdata[i].temp; 13 var newdate = new Date(filterdata[i].time); 14 chartData.push({ 15 "date": newdate, 16 "value": visits 17 }); 18 } 19 return chartData; 20 };
上記の関数を
javascript
1var test = makeData(data1);
以上のように呼び出そうと考えております。
makeChart()からmakeData()へはどう渡されるのでしょうか?
新たに
javascript
1function makeChart(data1) { 2・ 3・ 4series1.data = makeData(data1); 5・ 6・ 7}
上記で渡そうと考えております。
回答4件
あなたの回答
tips
プレビュー