コンテンツにスキップ

制御構文

はじめに

本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。


01. 反復

for of

▼ for of とは

順序を保ったまま配列を走査し、値を取得する。

オブジェクトに対して entires() 関数を使用して、一度配列に変換すれば、オブジェクトでも for of を使用できる。

for in を使用するより、こちらを使用したほうがよい。

▼ 配列の場合

const array = ["foo", "bar", "baz"];

for (const value of array) {
  console.log(value);
}

// foo
// bar
// baz

配列の entires() 関数を使用すれば、インデックス番号を取得もできる。

const array = ["foo", "bar", "baz"];

for (const [key, value] of array.entries()) {
  console.log(key);
}

// 0
// 1
// 2

▼ オブジェクトの場合

オブジェクトに対して entires() 関数を実行し、一度連想配列に変換すれば、オブジェクトでも for ... of を使用できる。

const object = {
  x: "foo",
  y: "bar",
  z: "baz",
};

for (const [property, value] of Object.entries(object)) {
  console.log(value);
}

// foo
// bar
// baz


continue

for in

▼ for in とは

配列/オブジェクト (連想配列) を順序を保たずに走査し、オブジェクトのプロパティ名や配列のキー名を取得する。

▼ 配列の場合

const array = ["foo", "bar", "baz"];

for (const key in array) {
  console.log(key);
}

// 0
// 1
// 2

▼ オブジェクトの場合

const object = {
  x: "foo",
  y: "bar",
  z: "baz",
};

for (const property in object) {
  console.log(property);
  console.log(object[property]);
}

// x
// y
// z
// foo
// bar
// baz

▼ continue とは

反復処理の現在のループをスキップし、次のループを開始する。

const array = ["foo", "bar", "baz"];

for (const [key, value] of array.entries()) {

    // キー名が偶数の組をスキップする。
    if(!(key % 2 == 0)){
        continue;
    }

    console.log(value);
}

// foo
// baz

▼ forEach() 関数を使用した代替法

反復処理のループを continue でスキップと同じ動作を、配列を処理する関数のコールバック関数の早期リターンで実現できる。

continue を使用するより、こちらのほうがよい。

PHP にも、forEach() 関数と同様に配列に対してコールバック関数を適用する関数 (find、fliter、map、reduce、some) があり、用途に合わせて使い分ける。

補足として PHP にも、forEach() 関数と同じような使い方をする array_walk() 関数がある。

const array = ["foo", "bar", "baz"];

array.forEach((value, key) => {
  // キーが偶数の組をスキップする。
  if (!(key % 2 == 0)) {
    return;
  }

  console.log(value);
});

// foo
// baz