Skip to content

Latest commit

 

History

History
35 lines (33 loc) · 1.46 KB

File metadata and controls

35 lines (33 loc) · 1.46 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. 呼叫名為 isValid 的函式,並傳入陣列引數
  2. 遇到第一層迴圈,開始執行,i 的範圍從 0 - 5
  3. arr[0] 為 3 不為 0,所以 i+1 等於 1
  4. i = 1 小於陣列長度 6,所以繼續執行 for 迴圈
  5. arr[1] 為 5 不為 0,所以 i+1 等於 2
  6. i = 2 小於陣列長度 6,所以繼續執行 for 迴圈
  7. arr[2] 為 8 不為 0,所以 i+1 等於 3
  8. i = 3 小於陣列長度 6,所以繼續執行 for 迴圈
  9. arr[3] 為 13 不為 0,所以 i+1 等於 4
  10. i = 4 小於陣列長度 6,所以繼續執行 for 迴圈
  11. arr[4] 為 22 不為 0,所以 i+1 等於 5
  12. i = 5 小於陣列長度 6,所以繼續執行 for 迴圈
  13. arr[5] 為 35 不為 0,所以 i+1 等於 6
  14. i = 6 不小於陣列長度 6,所以結束此 for 迴圈,進入下個迴圈
  15. i 為 2,i 小於陣列長度 6,所以繼續執行 for 迴圈
  16. arr[2] 等於 arr[1] 加上 arr[0] 的數值,所以 i+1 等於 3
  17. i = 3 小於陣列長度 6,所以繼續執行 for 迴圈
  18. arr[3] 等於 arr[2] 加上 arr[1] 的數值,所以 i+1 等於 4
  19. i = 4 小於陣列長度 6,所以繼續執行 for 迴圈
  20. arr[4] 不等於 arr[3] 加上 arr[2] 的數值,所以回傳 invalid