Skip to content

Latest commit

 

History

History
39 lines (36 loc) · 2.65 KB

File metadata and controls

39 lines (36 loc) · 2.65 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. 程式開始
  2. 執行第 2 行,宣告一個名稱為 isVaild 的 function() {...}
  3. 執行第 12 行,將 [3, 5, 8, 13, 22, 35] 傳入並執行 isVaild
  4. 執行第 3 行,執行迴圈,宣告一個 i 的變數並給予初始值為 0,i 值 0 小於陣列長度 6,執行下列區塊內程式,每次迴圈結束 i 值+ 1
  5. 執行第 4 行,arr[0] 取得 3,3 <= 0,回傳 false,不執行區塊內程式,i 值 (0 + 1 = 1)
  6. 執行第 3 行,執行迴圈,i 值 1 小於陣列長度 6,執行下列區塊內程式
  7. 執行第 4 行,arr[1] 取得 5,5 <= 0,回傳 false,不執行區塊內程式,i 值 (1 + 1 = 2)
  8. 執行第 3 行,執行迴圈,i 值 2 小於陣列長度 6,執行下列區塊內程式
  9. 執行第 4 行,arr[2] 取得 8,8 <= 0,回傳 false,不執行區塊內程式,i 值 (2 + 1 = 3)
  10. 執行第 3 行,執行迴圈,i 值 3 小於陣列長度 6,執行下列區塊內程式
  11. 執行第 4 行,arr[3] 取得 13,13 <= 0,回傳 false,不執行區塊內程式,i 值 (3 + 1 = 4)
  12. 執行第 3 行,執行迴圈,i 值 4 小於陣列長度 6,執行下列區塊內程式
  13. 執行第 4 行,arr[4] 取得 22,22 <= 0,回傳 false,不執行區塊內程式,i 值 (4 + 1 = 5)
  14. 執行第 3 行,執行迴圈,i 值 5 小於陣列長度 6,執行下列區塊內程式
  15. 執行第 4 行,arr[5] 取得 35,35 <= 0,回傳 false,不執行區塊內程式,i 值 (5 + 1 = 6)
  16. 執行第 3 行,執行迴圈,i 值 6 小於陣列長度 6 不成立,不執行下列區塊內程式,跳出迴圈
  17. 執行第 6 行,執行迴圈,宣告一個 i 的變數並給予初始值為 2,i 值 2 小於陣列長度 6,執行下列區塊內程式,每次迴圈結束 i 值+ 1
  18. 執行第 7 行,arr[2] 取得 8,arr[1] 取得 5,arr[0] 取得 3,8 !== 5 + 3 回傳 false,不執行區塊內程式,i 值 (2 + 1 = 3)
  19. 執行第 6 行,執行迴圈,i 值 3 小於陣列長度 6,執行下列區塊內程
  20. 執行第 7 行,arr[3] 取得 13,arr[2] 取得 8,arr[1] 取得 8,13 !== 8 + 5 回傳 false,不執行區塊內程式,i 值 (3 + 1 = 4)
  21. 執行第 6 行,執行迴圈,i 值 4 小於陣列長度 6,執行下列區塊內程
  22. 執行第 7 行,arr[4] 取得 22,arr[3] 取得 13,arr[2] 取得 8,22 !== 13 + 8 回傳 true,離開函式,並回傳字串 'invalid'
  23. 程式結束