この投稿では、JavaScript の基本: ネストした for ループ | freeCodeCamp.orgの解を著し殘す。
【解】
function multiplyAll(arr) {
let product = 1; // 1. 初期値として、積を1に設定
for (let i = 0; i < arr.length; i++) { // 2. arr配列の各補助配列につきて繰り返し
for (let j = 0; j < arr[i].length; j++) { // 3. 補助配列の各要素につきて繰り返し
product *= arr[i][j]; // 4. 積を計算し、productに乘算
}
}
return product; // 5. 積を返す
}
console.log(multiplyAll([[1], [2], [3]])) //テスト1. 6を返す
console.log(multiplyAll([[1, 2], [3, 4], [5, 6, 7]])) //テスト2. 5040を返す
console.log(multiplyAll([[5, 1], [0.2, 4, 0.5], [3, 9]])) //テスト3. 54を返す
具體的に、上記解算組がどのやうに動作しているかを説明する。
1.初期化
product
變數を初期値 1
で初期化する。これは、後で要素の積を計算する際に、積が 0
にならないようにするためだ。
2. 外側の繰り返し
for (let i = 0; i < arr.length; i++)
で、配列 arr
の各補助配列について繰り返しを行ふ。
最初に繰り返し數へ i
が 0
に設定され、arr[0]
の補助配列 [1, 2]
が選択される。次に、i
が 1
に設定され、arr[1]
の補助配列 [3, 4]
が選択される。最後に、i
が 2
に設定され、arr[2]
の補助配列 [5, 6, 7]
が選択される。
3. 内側の繰り返し
for (let j = 0; j < arr[i].length; j++)
で、現在の補助配列の各要素につきて繰り返しを行ふ。
最初に繰り返し數へ j
が 0
に設定され、arr[0][0]
の要素 1
が選択される。
次に、j
が 1
に設定され、arr[0][1]
の要素 2
が選択される。
次に、j
が 0
に設定され、arr[1][0]
の要素 3
が選択される。
次に、j
が 1
に設定され、arr[1][1]
の要素 4
が選択される。
次に、j
が 0
に設定され、arr[2][0]
の要素 5
が選択される。
次に、j
が 1
に設定され、arr[2][1]
の要素 6
が選択される。
最後に、j
が 2
に設定され、arr[2][2]
の要素 7
が選択される。
4. 積の計算
各補助配列の各要素につきて繰り返しを行ひ、それらの積を計算し product
變數に乘算してゆく。
最初に、product
に 1
が入りてゐるので、1 * 1
が計算され、product
は 1
となる。
次に、1 * 2
が計算され、product
は 2
となる。
その後、2 * 3
、6 * 4
、24 * 5
、120 * 6
、720 * 7
が計算され、最終的に product
は 5040
となる。
5. 積の返却
最後に、product
の値である 5040
が return
文によって返される。
從ひ、multiplyAll([[1, 2], [3, 4], [5, 6, 7]])
は 5040
を返す。
この投稿及び添付畫像は全て公共物(パブリックドメイン)とし、川音リオは一切の著作權を破棄する。 #CC0