JS_ループ

11ループ

11-1 for文の使い方

for (変数宣言; 繰り返し回数定義; どう繰り返すのか) {
  繰り返し処理
}

forを使って配列をループで取得すると以下のようになります。

let flower = ["ひまわり", "あさがお", "チューリップ", "どくだみ"];

for (let i = 0; i<=3; i++){
  console.log(flower[i]);
}

//  ひまわり
//  あさがお
//  チューリップ
//  どくだみ

11-2 forEach文の使い方

forEachメソッドを用いると、上より簡単に配列の中身を取り出すこともできます。

let flowers = ["ひまわり", "あさがお", "チューリップ", "どくだみ"];

function getFlower(flower){
  console.log(flower);
}

flowers.forEach(getFlower);

//  ひまわり
//  あさがお
//  チューリップ
//  どくだみ

11-3 for…of

「for…of」は「反復可能オブジェクト」を一つずつ取り出して、処理を行うために使います。ここでいう反復可能オブジェクトとは、配列やMap、Setなどのことを指します。

それでは、これらのオブジェクトに対してどのように「for…of」が使用できるのか実際に見てみましょう。

配列: 複数の値を順序づけて格納するために使用します。

const numbers = [1, 2, 3, 4, 5]

for (const number of numbers) {
  console.log(number);
}

> 1
> 2
> 3
> 4
> 5

Map: キーと値のペアを格納するために使用します。setの際にkey, valueの形で格納されます。

const map = new Map();
map.set("apple", "りんご"); 
map.set("banana", "バナナ");

for (const row of map) { 
  // 配列の0番目にキー、1番目に値が格納されている 
  console.log(row[0], row[1]);
}

> apple りんご
> banana バナナ

また、Mapの場合は「分割代入」のように任意の変数名でキーと値を受け取り、ループ内で使用もできます。

const capitals = new Map();
capitals.set('日本', '東京');
capitals.set('アメリカ', 'ワシントンD.C.');

for (const [country, capital] of capitals) { 
  console.log(`${country}の首都は${capital}です。`);
}

> 日本の首都は東京です。
> アメリカの首都はワシントンD.C.です。

Set: 重複しない値を格納するために使用します。配列と似ているが各要素がユニークです。

const uniqueNumbers = new Set();
uniqueNumbers.add(1); 
uniqueNumbers.add(2); 
uniqueNumbers.add(3); 
uniqueNumbers.add(2); // 重複する値は無視されるため、uniqueNumbersの中身は「1, 2, 3」

for (const number of uniqueNumbers) { 
  console.log(number);
}

> 1
> 2
> 3

以上が「for…of」の使用方法になります。
この構文は、データの集まりを一つずつ取り出して処理する際に、非常に役立ちます。

11-4 for…in

「for…in」はオブジェクトのすべての列挙可能なプロパティを通じてループするために使われます。
これはオブジェクトのキー(プロパティ名)を取得するのに便利です。

構文:

for (const key in obj) {
  オブジェクトの各プロパティに対する繰り返し処理
}

key: オブジェクトのプロパティが1つずつ渡されます。
obj: オブジェクトや配列を設定します。

例:

const fruits = { apple: "りんご", banana: "バナナ", orange: "オレンジ" };
for (const key in fruits) {
  console.log(`キー[${key}] 値:[${fruits[key]}]`);
}

> キー[apple] 値:[りんご]
> キー[banana] 値:[バナナ]
> キー[orange] 値:[オレンジ]

「for…in」は配列に対しても使用できますが、渡される要素の順番が担保されていないため配列に対しては「for」文や「for…of」を使用するのが推奨されています。
「for…in」と「for…of」は似ていますが、それぞれ使用する目的が異なります。

for…in: オブジェクトのプロパティ(キー)を列挙するために使用。
for…of: 反復可能オブジェクトの要素に繰り返しアクセスするために使用。

上記のことを意識して使い分けることを推奨します。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です