🕌

JavaScriptのforの種類が結構あって混乱した記憶があったので整理してみる

2021/06/28に公開2

まずはド定番のfor文

これはどの言語でも見るパターンなので皆さん楽勝でしょ!

for (let i = 0; i < 9; i++) {
  console.log(i)
}
// 実行結果
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8

続いてfor...in!!

これ最初見た時for...ofとの使い分けが分からなかった笑
結論から言うとfor...inはObjectの時に使用してください。
配列もループできますが、indexの順番通りに処理することを保証していません。
そして何より、MDNが「配列 の繰り返しには使うべきではありません」と言っているのでやめましょう。

const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
}
// 実行結果
> "a: 1"
> "b: 2"
> "c: 3"

3つ目はfor...of!!

for...ofは配列の時に使用しよう!配列以外にもString、Array、Map、Setなどもループできる!
ちなみにObjectをループさせようとするとエラーになるのでやめてください!

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}
// 実行結果
> "a"
> "b"
> "c"

4つ目はforEach()!!!

forEachは上記3つと違ってメソッドです!!
forEachはindexも取れるので、indexも欲しいときはfor..ofじゃなくてこっちを使いましょう!
ちなみにforEachはメソッドなのでbreakcontinueは使用できません!!

const array1 = ['a', 'b', 'c'];

array1.forEach((element, index) => {
  console.log(`${index} : ${element}`)
});
// 実行結果
> "0 : a"
> "1 : b"
> "2 : c"

余談

簡単にfor文まとめてみました!良かったらいいね!お願いします!分かりにくかったらすいません😢
Twitterもやっているのでフォローお願いします😄
https://twitter.com/home?lang=ja

Discussion

standard softwarestandard software

for (const [index, element] of array1.entries()) {

for (const [index, element] of Object.entries(object1)) {

とやります。
forEachでは、break/continueが書きづらいので、応用のきくfor of を自分はよくつかいます。

@yuki@yuki

standard softwareさんコメントありがとうございます!!
entries()というものがあるんですね!勉強になります!😃
記事に反映させていただきます!!