開発環境
- 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 コメント:
コメントを投稿