開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- Learning JavaScript [邦訳](参考書籍)
JavaScriptのコード(ES6) pic.twitter.com/DFrph0NQUf
— Ant@競プロ (@ant2357) 2017年4月16日
とりあえず途中まで pic.twitter.com/3pPe7pXyEH
— ABAB↑↓BA (@ababupdownba) 2017年4月16日
コードの続きをES6(ES2015)っぽく(?)、配列の操作の部分を for loop の代わりに map method、reduce method を使って書いてみた。
コード(Emacs)
HTML5
<input id="nums0" type="text" value="9,1 2 1 2 1 2 1 2 1"> <br> <button id="run0">run</button> <button id="clear0">clear</button> <pre id="output0"></pre> <script src="sample.js"></script>
JavaScript
let input0 = document.querySelector('#nums0'); btn0 = document.querySelector('#run0'), btn1 = document.querySelector('#clear0'), pre0 = document.querySelector('#output0'), p = (x) => pre0.textContent += x + '\n'; // ここから let output = () => { let input = input0.value.split(','), ans = 0, up = false, down = false; input[1] .split(' ') .slice(0, parseInt(input[0], 10)) .map((x) => parseInt(x, 10)) .reduce((x, y) => { up = x < y ? true : up; down = x > y ? true : down; if (up && down) { up = down = false; ans += 1; } return y; }); p(ans + 1); }; // ここまで btn0.onclick = output; btn1.onclick = () => pre0.textContent = ''; output();
0 コメント:
コメントを投稿