Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 2.47 KB

File metadata and controls

42 lines (35 loc) · 2.47 KB
function isValid(arr) {
  for(var i=0; i<arr.length; i++) {
    if (arr[i] <= 0) return 'invalid'
  }
  for(var i=2; i<arr.length; i++) {
    if (arr[i] !== arr[i-1] + arr[i-2]) return 'invalid'
  }
  return 'valid'
}

isValid([3, 5, 8, 13, 22, 35])

執行流程

  1. 執行第 1 行名稱叫 isValid 的 function,帶入 arr 值。
  2. 執行第 2 行,開始迴圈第一圈,設定 i 是 0,判斷 i < arr 的長度(6), 是,繼續執行,進入第一圈迴圈。
  3. 執行第 3 行,判斷 arr[0] 的值是否小於等於 0 ,不是
  4. 第一圈迴圈結束,跑回第 2 行, i++ 變成 1 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行,進入第二圈迴圈。
  5. 執行第 3 行,判斷 arr[1] 的值是否小於等於 0 ,不是
  6. 第二圈迴圈結束,跑回第 2 行, i++ 變成 2 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行,進入第三圈迴圈。
  7. 執行第 3 行,判斷 arr[2] 的值是否小於等於 0 ,不是
  8. 第三圈迴圈結束,跑回第 2 行, i++ 變成 3 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行,進入第四圈迴圈。
  9. 執行第 3 行,判斷 arr[3] 的值是否小於等於 0 ,不是
  10. 第四圈迴圈結束,跑回第 2 行, i++ 變成 4 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行,進入第五圈迴圈。
  11. 執行第 3 行,判斷 arr[4] 的值是否小於等於 0 ,不是
  12. 第五圈迴圈結束,跑回第 2 行, i++ 變成 5 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行,進入第六圈迴圈。
  13. 執行第 3 行,判斷 arr[5] 的值是否小於等於 0 ,不是
  14. 第六圈迴圈結束,跑回第 2 行, i++ 變成 6 ,檢查 i 是否小於 arr 的長度 (6) ,否,結束迴圈,往下執行。

  1. 執行第 5 行,開始迴圈第一圈,設定 i 是 2 ,判斷 i < arr 的長度(6), 是,繼續執行,進入第一圈迴圈。
  2. 執行第 6 行,判斷 arr[2] 不等於 arr[2-1=1] + arr[2-2=0] ,不是
  3. 第一圈迴圈結束,跑回第 5 行, i++ 變成 3 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行。
  4. 執行第 6 行,判斷 arr[3] 不等於 arr[3-1=2] + arr[3-2=1] ,不是
  5. 第二圈迴圈結束,跑回第 5 行, i++ 變成 4 ,檢查 i 是否小於 arr 的長度 (6) ,是,繼續執行。
  6. 執行第 6 行,判斷 arr[4] 不等於 arr[4-1=3] + arr[4-2=2] ,是,回傳 invalid ,結束執行。
  7. 執行完畢。