処理を学ぶ 分岐、switch文、反復、for文、高階関数
ハンズオンJavaScript (あんどうやすし(著)、オライリー・ジャパン)の3章(処理を学ぶ)、3.9(練習問題)の3-1、2、3の解答を求めてみる。
コード
console.log('3-1')
for (let i = 0; i < 5; i += 1) {
let c = Math.floor(Math.random() * 5)
console.log(`c = ${c}`)
switch (c) {
case 1:
console.log('case 1')
break
case 2:
console.log('case 2')
break
default:
console.log('default')
console.log('case 2')
}
}
console.log('3-2')
for (let i = 0; i < 3; i += 1) {
const j = i * 2
console.log(j)
}
console.log('3-3')
const sumMap = (ary, f) => {
let result = 0
for (let n of ary) {
result += f(n)
}
return result
}
// 1 + 16 + 25 = 42
console.log(
sumMap(
[1, 4, 5],
(e => (n => (
(n, e) => {
let result = 1
for (let i = 0; i < e; i += 1) {
result *= n
}
return result
}
)(n, e)))(2)
)
)
入出力結果(Terminal, Zsh)
% node sample1.js
3-1
c = 3
default
case 2
c = 2
case 2
c = 2
case 2
c = 0
default
case 2
c = 3
default
case 2
3-2
0
2
4
3-3
42
%