Menu
Coddy logo textTech

2次元配列と二重ループ

CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 8/65。

2次元配列を扱う際、各行と各列を反復処理するために、しばしば入れ子になったループ(ネストされたループ)を使用します。これにより、配列内のすべての要素にアクセスしたり、変更したりすることができます。

2次元配列における入れ子になったループの典型的な構造は次のとおりです:

const seats = [
  [true, true, false],
  [true, false, true]
];

for (let r = 0; r < seats.length; r++) {
  // 外側のループは行を反復処理します
  for (let c = 0; c < seats[r].length; c++) {
    // 内側のループは列を反復処理します
    // ここで seats[r][c] にアクセスできます
  }
}

外側のループは行を反復処理し、内側のループは各行の列を反復処理します。これにより、array[r][c]を使用して2次元配列の各要素にアクセスできます。

challenge icon

チャレンジ

簡単

文字列の2次元配列 matrix と文字列 target を引数に取る、countOccurrences という名前の関数を作成してください。この関数は、すべての行と列を通じて target が出現する回数を返す必要があります。

チートシート

入れ子になったループを使用して2次元配列を反復処理します。外側のループで行を、内側のループで列を処理します:

const seats = [
  [true, true, false],
  [true, false, true]
];

for (let r = 0; r < seats.length; r++) {
  // 外側のループで行を反復処理します
  for (let c = 0; c < seats[r].length; c++) {
    // 内側のループで列を反復処理します
    // seats[r][c] で要素にアクセスします
  }
}

自分で試してみよう

function countOccurrences(matrix, target) {
  // TODO: matrix 内に 'target' が出現する回数をカウントするロジックを実装してください
}
// 関数の外側には何も記述しないでください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン