前提・実現したいこと
初めての投稿になります。よろしくお願いいたします。
Jsonのデータをループさせて欲しいデータを抜き出したいと思いました。
Javascript
1[ 2 { 3 "day": "2018/04/30", 4 "high": "1039537", 5 "low": "1004541" 6 }, 7{ 8 "day": "2018/04/29", 9 "high": "1048158", 10 "low": "1000610" 11 }, 12 13/* ----- 中略 ----- */ 14 15 { 16 "day": "2018/04/01", 17 "high": "770192", 18 "low": "676906" 19 } 20];
という感じの4月の1か月分のデータです。
これを1か月毎に区切ったり、データが長くなれば3か月、6カ月、1年毎に区切ってその中の最大値や最小値のデータを抜き出したいと思っています。
発生している問題・エラーメッセージ
まずはfor文を使ってデータを1週間ごとに区切ってから、1週間のhighの最大値とlowの最小値を取り出したいのですが、値の取り出し方がいまいちよく分かりませんでした。
該当のソースコード
Javascript
1var fs = require("fs"); 2// JSON 3var json = [ 4 { 5 "day": "2018/04/30", 6 "high": "1039537", 7 "low": "1004541" 8 }, 9 { 10 "day": "2018/04/29", 11 "high": "1048158", 12 "low": "1000610" 13 }, 14 { 15 "day": "2018/04/28", 16 "high": "1042000", 17 "low": "982147" 18 }, 19 { 20 "day": "2018/04/27", 21 "high": "1044772", 22 "low": "960676" 23 }, 24 { 25 "day": "2018/04/26", 26 "high": "1071110", 27 "low": "960690" 28 }, 29 { 30 "day": "2018/04/25", 31 "high": "1076648", 32 "low": "967815" 33 }, 34 { 35 "day": "2018/04/24", 36 "high": "1067674", 37 "low": "964904" 38 }, 39 { 40 "day": "2018/04/23", 41 "high": "988147", 42 "low": "947067" 43 }, 44 { 45 "day": "2018/04/22", 46 "high": "978223", 47 "low": "935823" 48 }, 49 { 50 "day": "2018/04/21", 51 "high": "974495", 52 "low": "891117" 53 }, 54 { 55 "day": "2018/04/20", 56 "high": "963122", 57 "low": "870957" 58 }, 59 { 60 "day": "2018/04/19", 61 "high": "896137", 62 "low": "853827" 63 }, 64 { 65 "day": "2018/04/18", 66 "high": "880135", 67 "low": "841612" 68 }, 69 { 70 "day": "2018/04/17", 71 "high": "898900", 72 "low": "841899" 73 }, 74 { 75 "day": "2018/04/16", 76 "high": "906178", 77 "low": "845470" 78 }, 79 { 80 "day": "2018/04/15", 81 "high": "898839", 82 "low": "846863" 83 }, 84 { 85 "day": "2018/04/14", 86 "high": "875603", 87 "low": "827362" 88 }, 89 { 90 "day": "2018/04/13", 91 "high": "878800", 92 "low": "725550" 93 }, 94 { 95 "day": "2018/04/12", 96 "high": "854537", 97 "low": "721461" 98 }, 99 { 100 "day": "2018/04/11", 101 "high": "744774", 102 "low": "712095" 103 }, 104 { 105 "day": "2018/04/10", 106 "high": "778178", 107 "low": "711808" 108 }, 109 { 110 "day": "2018/04/09", 111 "high": "780201", 112 "low": "716405" 113 }, 114 { 115 "day": "2018/04/08", 116 "high": "769416", 117 "low": "732451" 118 }, 119 { 120 "day": "2018/04/07", 121 "high": "761432", 122 "low": "699899" 123 }, 124 "day": "2018/04/06", 125 "high": "746511", 126 "low": "699204" 127 }, 128 { 129 "day": "2018/04/05", 130 "high": "789659", 131 "low": "708030" 132 }, 133 { 134 "day": "2018/04/04", 135 "high": "801088", 136 "low": "720637" 137 }, 138 { 139 "day": "2018/04/03", 140 "high": "802688", 141 "low": "723628" 142 }, 143 { 144 "day": "2018/04/02", 145 "high": "750759", 146 "low": "678044" 147 }, 148 { 149 "day": "2018/04/01", 150 "high": "770192", 151 "low": "676906" 152 } 153]; 154 155// 分割 156for (var i = 0; i < json.length; i += 7) { 157 fs.appendFile('./out.json', JSON.stringify(json[i], null, ' ')); 158} 159console.log("JSON形式で出力されました"); 160 161/* ----- 実行結果 ----- */ 162{ 163 "day": "2018/04/30", 164 "high": "1039537", 165 "low": "1004541" 166}{ 167 "day": "2018/04/23", 168 "high": "988147", 169 "low": "947067" 170}{ 171 "day": "2018/04/16", 172 "high": "906178", 173 "low": "845470" 174}{ 175 "day": "2018/04/09", 176 "high": "780201", 177 "low": "716405" 178}{ 179 "day": "2018/04/02", 180 "high": "750759", 181 "low": "678044" 182}
試したこと
とりあえず1週間分に区切ることだけはできたのですが、値の取り出し方がさっぱり分らず悩んでいます。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。