前提・実現したいこと
外部から取得した複数のcsvファイルのデータをfor文とwhile文を使って順番に512個りづつ取り出したいのですが、思った通りに動作しません。
使用環境
macOS ver 11.6
node.js ver v6.8.0
ソースコード
取得した外部ファイルを順番に512個づつ取り出す
js
1 // データセット作成 2 var myReg = new RegExp('^.*?,.*?,.*','mg'); 3 var valuesAry = []; 4 var dataObj = {}; 5 6 console.log("textAry length " + textAry.length); 7 // 該当箇所はここから 8 // 取得した外部ファイル数だけ繰り返す 9 for(let s = 0; s < textAry.length; s++) { 10 console.log(s + "kaime"); 11 var cnt = 0; 12 var resultMatch = myReg.exec(textAry[s]); 13 // while文の中で512個目でストップさせて次のファイルへ行く 14 while(resultMatch != null) { 15 var splitValueAry; 16 var valuesObj = {}; 17 splitValueAry = resultMatch[0].split(","); 18 //console.log(splitValueAry); 19 20 valuesObj.x = parseFloat(splitValueAry[0]); 21 valuesObj.y = parseFloat(splitValueAry[1]); 22 valuesObj.z = parseFloat(splitValueAry[2]); 23 valuesObj.symbol = symbolAry[s]; 24 25 valuesAry.push(valuesObj); 26 27 //console.log("Now valuesAry " + valuesAry.length); 28 // 何回目か調べる 29 if (cnt == 511) { 30 console.log(cnt + " 回目 次に移ります") 31 break; 32 } 33 resultMatch = myReg.exec(textAry[s]); 34 console.log("count: " + cnt); 35 cnt++; 36 } 37 } 38 console.log("valuesAry Length : " + valuesAry.length); 39 dataObj.values = valuesAry;
実行結果
// 省略 count: 506 count: 507 count: 508 count: 509 count: 510 511 回目 次に移ります 1kaime count: 0 count: 1 //途中で終了する valuesAry Length : 514
今回は2つのcsvファイルから取り出しを行なったので1024個のデータを取り出したい
csvファイル一部
一番左は行番号になります
107184 -0.008,-0.019,0.043 107185 -0.003,-0.010,0.049 107186 -0.001,-0.015,0.053 107187 0.002,-0.006,0.062 107188 -0.001,-0.010,0.048 107189 0.003,-0.010,0.053 107190 0.003,-0.016,0.047 107191 -0.001,-0.008,0.046 107192 0.003,-0.009,0.048 107193 0.004,-0.011,0.052 107194 -0.002,-0.020,0.047 107195 0.002,-0.010,0.044 107196 0.004,-0.016,0.040 107197 0.004,-0.011,0.042 107198 -0.005,-0.008,0.044 107199 -0.001,-0.012,0.039 107200 0.002,-0.007,0.050
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。