RCTYBZ, вот тебе кагбэ полное решение...
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='https://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> $(function(){ $.ajax({ url: "tmp1.csp", success: function(Data){ var h=Data.match(/\d+/g); var a=h.slice(1); h=h[0]; alert('Высота волны - '+h); alert('Рельеф - '+a); h=getCount(a,h); alert('Воды - '+h); } }); function getCount(array, h) { var max = 0, sum = 0; for (var i = 0; i < array.length; ++i) { var item = array[i]; if (item >= h) { break; } sum += Math.max(0, max - item); max = Math.max(max, item); } return sum; }; }); </script> </head> <body> </body> </html> |
:) :write:
var arr = '1 2 3 2 3 4 5 1 4 6'.match(/\d+/g); var max = 4; function pit(arr, max) { var puddle = 0, min; for (var i = 0; i < arr.length; i++) { if(max <= +arr[i]) break; if(min == void 0 && arr[i + 1] < arr[i]) min = arr[i]; if(min != void 0 && arr[i] > min) min = void 0; if(min != void 0) puddle += min - arr[i]; } return puddle } var num = pit(arr, max) ; alert(num); |
совсем не понятно, как выгрузить информацию из txt
есть отдельный файл текстовый только с цифровым значением - высота волн и углубления, не понятно, как открыть, взять данные, внести их в массив. Можно попробовать открыть таким способом и вывести данные для наглядности <!DOCTYPE html> <html> <head> <title>wave</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <input type="file" id="files" name="file" /> Read file: <span class="readButtons"> <button>show text</button> </span> <div id="byte_range"></div> <div id="byte_content"></div> <script> function read(opt_start, opt_stop) { var files = document.getElementById('files').files; if (!files.length) { alert('file not selected'); return; } var file = files[0]; var start = parseInt(opt_start) || 0; var stop = parseInt(opt_stop) || file.size - 1; var reader = new FileReader(); reader.onloadend = function(evt) { if (evt.target.readyState == FileReader.DONE) { document.getElementById('byte_content').textContent = evt.target.result; } }; var blob = file.slice(start, stop + 1); reader.readAsBinaryString(blob); } document.querySelector('.readButtons').addEventListener('click', function(evt) { if (evt.target.tagName.toLowerCase() == 'button') { var startByte = evt.target.getAttribute('data-startbyte'); var endByte = evt.target.getAttribute('data-endbyte'); read(startByte, endByte); } }, false); alert(file); </script> </head> </html> |
<input type="file"> <script> var arr; document.querySelector('input').onchange = function(){ var fr = new FileReader(); fr.onload = function(){ arr=this.result.split(' '); }; fr.readAsText(this.files[0]); }; </script> |
если там в несколько строк разбить на массив по новой строке и по пробелам
|
Да так можно, самое простое:
var file = '4\n1 2 3 2 3 4 5 1 4 6'; var rows = file.split('\n'); var height = rows[0]; var depths = rows[1].split(' '); console.log(height, depths); |
не получается задать рабочий массив, чтобы вывести значение и проводить операции с ним, для решения задачи
как из отдельного файла взять данные и внести в массив, до сих пор не найден для меня ответ и тут наверное так arr=this.result.split(','); |
так и не дошло, как вывести из файла в программу данные
|
Часовой пояс GMT +3, время: 14:26. |