LoginSignup
0
0

More than 3 years have passed since last update.

JavaScriptの制御構文(4)〜for...in命令とfor...of命令〜

Last updated at Posted at 2020-08-14

はじめに

こんにちは!
今日も備忘録として投稿させて頂きます!
昨日は、繰り返し処理で使うfor命令について投稿しましたが、今日は、連想配列(オブジェクト)や配列などの繰り返し処理を実行する際に使う、for...in命令、for...of命令について投稿します!

for…in命令

連想配列(オブジェクト)の要素を取り出して、先頭から繰り返し処理をしていく命令には、for…in命令を使います。

for(仮変数 in 連想配列) {
    繰り返す処理
}

for…of命令

配列などを順番に列挙し繰り返し処理をしていく命令には、for…of命令を使います。for…of命令は、ES2015で新しく追加された命令です。
配列以外にも、NodeListやイテレータ・ジェネレータなども処理できます。

for(仮変数 of 列挙可能なオブジェクト) {
    繰り返す処理
}

for...in命令とfor...of命令の両方に、共通して見られる、「仮変数」とは、連想配列(オブジェクト)のキーや、配列の要素を一時的に格納する変数のことです。名前はなんでもオッケー!
(ただし、あとで見てもわかりやすいものにすること。)

具体例

例)連想配列(for...in命令)

let datas = { apple: 300, banana: 120, watermelon: 500 };
for (data in datas) {
    console.log(data + '=' + datas[data]);
}

// 結果
// apple=300
// banana=120
// watermelon=500

上記の例では、変数datasに連想配列(オブジェクト)が格納されており、変数dataに、apple・banana・watermelonといったキーが一旦格納されます。
そして、繰り返し処理をする際に、
連想配列全体の変数datas[ キーを格納している変数data ]
によって、要素を順に取り出して処理をしています。
また、配列の時にも使えます!
が、あまり推奨はされていないみたいですね...

例)配列など(for...of命令)

let datas = ['apple', 'banana', 'watermelon'];
for (data of datas) {
    console.log(data)
}

// 結果
// apple
// banana
// watermelon

上記の例では、変数datasに配列が格納されており、変数dataに、apple・banana・watermelonといった、配列の要素が一旦格納されます。
そして、繰り返し処理をする際に、
要素を指定すると、処理が実行されて、consoleには要素の値が順に表示されます。
ただし、連想配列には使えません。

このように、連想配列(オブジェクト)や配列に関しては、通常のfor命令ではなく、for…in命令や、for…of命令を利用します。
これまで、いくつか個人開発をしていて思うのは、この文法結構よく使っているなと感じます!
特に、最初に紹介した、for...in命令は、ユーザーによる入力値をリスト表示したりする時など、出てきたりしましたね!

今日はここまでです!
理解不足等による、不備等ございましたら、コメントお願い致します!

参考文献

山田祥寛著『[改訂新版]JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで』(2018)
※第1刷は、2016年。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0