Skip to content

Latest commit

 

History

History
26 lines (24 loc) · 1.25 KB

File metadata and controls

26 lines (24 loc) · 1.25 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 行,設定 isValid 為函式名稱,arr 為變數
  2. 執行第 3 行,設定變數 i 是 0,檢查終止條件 i 是否 < 變數陣列的長度,是,執行第 4 行,進入迴圈,不是則跑到第 6 行
  3. 執行第 4 行,判斷變數陣列第 i 位是否 <= 0,是,則回傳 'invalid',不是則 i++,跑回第 3 行從執行檢查終止條件開始
  4. 執行第 6 行,設定變數 i 是 2,,檢查終止條件 i 是否 < 變數陣列的長度,是,繼續執行,進入迴圈,不是則跑到第 9 行
  5. 執行第 7 行,判斷若變數陣列第 i 位不等於第 i-1 位和 i-2 位加總,則回傳 'invalid',等於則 i++,跑回第 6 行從執行檢查終止條件開始
  6. 以上皆未回傳,則執行第 9 行,回傳 'valid'

執行此程式的目的

  • 第一個迴圈為判斷陣列是否有負數
  • 第二個迴圈為判斷陣列第三個位數開始是否為前兩位數的加總
  • 整個流程為判斷陣列是否為費氏數列