JavaScriptのfor…ofの使い方について書いています。
for…ofを使うことで、指定した要素でループ処理することができます。
簡単に解説した後に、いろんな要素をループするサンプルコードを書いてみました。
for…ofの使い方
for…ofを使うと、配列などの要素を要素がある分、繰り返すことができます。
例えば、配列をループするには下記のようにします。
const fruits = ['apple', 'banana', 'lemon', 'orange']
for(const fruit of fruits) {
console.log(fruit)
}
最初にfruits
変数に、果物名の文字列を代入した配列を作成しています。
その次の処理で、for...of
を使って配列の要素がある分、繰り返しています。
of
の左側が配列要素が入る変数で、右側にループしたい配列を書きます。
ループするたびに、fruit
変数にひとつひとつの要素が代入されます。
ループ処理の中では、fruit
変数の内容をconsole.log
で出力しているだけです。
プログラムを実行すると、下記のようになります。
apple
banana
lemon
orange
配列の全ての要素がひとつずつ取り出されて出力されました。
for…ofを使ったサンプルコード
for...of
を使って、下記の要素をループしてみています。
・文字列
・辞書(Map)
・集合(Set)
配列をループする
for...of
で配列要素を繰り返しています。
最初のプログラムと同じ配列ですが、今回は数値を繰り返して平均を求めるようにしてみました。
const scores = [80, 50, 60, 70, 90]
let total = 0
for (const score of scores) {
total += score
}
const result = total / scores.length
console.log(result) // 70
scores
変数に数値を5つ並べた配列を作成しました。
次に全部を足した合計を格納するtotal
変数を定義しています。
そして、for...of
で処理しています。
scores
変数に入っている要素をひとつずつscore
変数に取り出しています。
取り出した内容をtotal
変数に足し込んでいきます。
ループを抜けたら、合計を要素数で割って、平均値を出しています。
result
変数に格納して、console.log
で出力しました。
結果、平均値の「70」が出力されて、全部たされて平均が出力されたことが確認できました。
文字列をループする
for...of
で文字列を繰り返すこともできます。
例えば、下記のようにすると、1文字ずつ出力されます。
const hello = 'hello!!'
for(const char of hello) {
console.log(char)
}
最初にhello
変数に文字列の「hello!!
」を代入しました。
その次の処理で、hello
変数を元にしてfor...of
でループしています。
ループするたびにchar
変数にhello
変数の文字がひとつずつ設定されます。
console.log
でchar
変数の内容を出力しています。
実行して確認すると、下記のように一文字ずつ出力されました。
h
e
l
l
o
!
!
辞書(Map)をループする
for...of
でMapオブジェクトを繰り返すこともできます。
例えば、下記のようにしてMapオブジェクトをループ処理します。
const fruitMap = new Map()
fruitMap.set('red', 'apple')
fruitMap.set('pink', 'peach')
fruitMap.set('banana', 'yellow')
for (const [color, fruit] of fruitMap) {
console.log(`色:${color} 果物:${fruit}`)
}
最初にMapオブジェクトをfruitMap
変数に作りました。
その後に、キーと値をset
メソッドで設定しています。
そして、for...of
を使って、作ったMapオブジェクトを繰り返し処理しています。
of
の右側にMapのfruitMap
変数を設定して、左側にcolor
変数とfruit
変数を用意しています。
color
変数にMapオブジェクトのキーが代入されて、fruit
変数に値が代入されます。
console.log
で出力すると、下記のようにキーと値が出力されていることが確認できました。
色:red 果物:apple
色:pink 果物:peach
色:banana 果物:yellow
集合(Set)をループする
for...of
でSetオブジェクトも繰り返すことができます。
例えば、下記のようにしてSetオブジェクトをループ処理します。
const fruits = new Set()
fruits.add('apple')
fruits.add('orange')
fruits.add('banana')
for (const fruit of fruits) {
console.log(fruit)
}
最初にfruits
変数にSetオブジェクトを作りました。
次の3行で、作ったfruits
変数に値を代入しています。
そして、for...of
を使ってループしています。
of
の右側がSetのfruits
変数で、左側に要素がひとつずつ取り出されます。
ループ内では、取り出した要素をconsole.log
で出力しました。
実行すると下記のように、ひとつずつ要素が取り出せました。
apple
orange
banana
終わりに
今回はfor...of
で要素をループする方法について書いてみました。
まとめると、下記になります。
・ofの右側に繰り返したい要素、左側に取り出したときに設定する変数を書く
・配列/文字列/辞書/集合での繰り返し処理が確認できた
コメント