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])
/*
- 執行第 2 行,設定 isValid 為函式名稱,arr 為變數
- 執行第 3 行,設定變數 i 是 0,檢查終止條件 i 是否 < 變數陣列的長度,是,執行第 4 行,進入迴圈,不是則跑到第 6 行
- 執行第 4 行,判斷變數陣列第 i 位是否 <= 0,是,則回傳 'invalid',不是則 i++,跑回第 3 行從執行檢查終止條件開始
- 執行第 6 行,設定變數 i 是 2,,檢查終止條件 i 是否 < 變數陣列的長度,是,繼續執行,進入迴圈,不是則跑到第 9 行
- 執行第 7 行,判斷若變數陣列第 i 位不等於第 i-1 位和 i-2 位加總,則回傳 'invalid',等於則 i++,跑回第 6 行從執行檢查終止條件開始
- 以上皆未回傳,則執行第 9 行,回傳 'valid'
- 第一個迴圈為判斷陣列是否有負數
- 第二個迴圈為判斷陣列第三個位數開始是否為前兩位數的加總
- 整個流程為判斷陣列是否為費氏數列