個人的「質はともかく継続する」36日目です
JavaScriptを書くとき、ループ処理を書こうとするといつも忘れてしまう、for文の代わりの方法をまとめました。正確には代わりではありませんが、用途としては代わりになるものたち、ですね。
for文
まずはfor文。言語とわず、大体同じような書き方ですよね。
for (const element of [1, 2, 3]) {
console.log(element);
}
1
2
3
map
つづいてmapです。個人的には一番出番が多い。これは1から3までの配列をひとつづつ取り出して、2倍したものを新たな配列とする処理ですね。mapは新たな配列を生み出します。
const doubled = [1, 2, 3].map((element) => element * 2);
console.log(doubled);
[2,4,6]
filter
お次はfilterです。条件に一致するものを取り出します。この例だと、2で割り切れるものを取り出し、新たな配列を作っています。
const evens = [1, 2, 3, 4, 5].filter((element) => element % 2 === 0);
console.log(evens);
[2,4]
reduce
最後にreduceです。配列の各要素に対して関数を実行して、単一の値を返します。このメソッドは返ってくる値が配列ではないことに注意。この例だと、1から3までの配列に対して、初期値0から始まる累積値を求める式になっています。初期値0からはじまり、配列の1と0を足して1、次は1と2を足して3、最後は3と3を足して6。
いちばん忘れがちで、毎回「あぁそう言えば関数を実行するんだった」となります。出番も個人的には少ないです。
const sum = [1, 2, 3].reduce((acc, cur) => acc + cur, 0);
console.log(sum);
6