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次元配列の各要素にアクセスできます。
チャレンジ
簡単文字列の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' が出現する回数をカウントするロジックを実装してください
}
// 関数の外側には何も記述しないでくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。