// 水温表に付与するclass(奇数行と偶数行で背景を変えるため) // 今回は突貫工事、jQuery使った方がコードが美しいとか気にしない const TR_CLASS = ['even_row', 'odd_row']; // 取得するデータのキー(何時間前のデータを取得するか) const BEFORE = [0, 1, 12, 24]; // 水温データの各列タイトル const COLUMN_NAME = ['現在', '1時間前', '12時間前', '24時間前']; /** * 最新の水温表を作成 */ function makeTable() { var html = ''; for (var i = 0; i < DEVICE_LIST.length; i++) { html += ''; // 各測点の全データを取得 var extracted_data = new Array(); for (var j = 0; j < BEFORE.length; j++) { extracted_data[j] = extractFormattedWaterTempData(data[i], FORMAT_ID_LIST[i], BEFORE[j]); if (extracted_data[j]['欠測チェック']) continue; // データは送られてきているがすべての水温データが空の場合は欠測扱いにする var missing = true; for (var k = 0; k < deep_list['全体'].length; k++) { if (deep_list[DEVICE_LIST[i]][k]) { if (extracted_data[j][deep_list['全体'][k]] != 'Err' && extracted_data[j][deep_list['全体'][k]] != '-') missing = false; } } extracted_data[j]['欠測チェック'] = missing; } // 測点名の出力 html += ''; // classを付与(スクロール機能を実装するため) html += ''; html += ''; // 各列タイトルの出力 html += ''; for (var j = 0; j < COLUMN_NAME.length; j++) { html += ''; } html += ''; // データ部分の出力 for (var j = 0; j < deep_list['全体'].length; j++) { // 奇数行か偶数行かで異なるclassを付与(cssで行ごとに背景色を変えて表を見やすくするため) html += ''; // 三浦と三崎は特別処理(三浦は1mと3m、三崎は1mと4mで水温を測定しているから) if( deep_list['全体'][j]=='5m' ){ if( DEVICE_LIST[i] == '三浦' ) html += ''; else if( DEVICE_LIST[i] == '三崎' ) html += ''; else html += ''; }else{ html += ''; } for (var k = 0; k < BEFORE.length; k++) { if (extracted_data[k]['欠測チェック']) { if (j == 0) html += ''; continue; } html += ''; } html += ''; } html += '
' + DEVICE_LIST[i] + '
水深' + COLUMN_NAME[j] + '
3m4m5m' + deep_list['全体'][j] + '欠測'; value = deep_list[DEVICE_LIST[i]][j] ? roundValue(extracted_data[k][deep_list['全体'][j]], 1) : 'NA'; html += '
'; // 表間のスペース(cssで高さ調整) html += '
'; } $('#js-table').append(html); }