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])
- 宣告函式 isValid,傳入參數 arr
- 參數 arr 為陣列 [3, 5, 8, 13, 22, 35]
- 執行第一個迴圈,變數 i,初始值為 0,i=0,判斷 0 是否小於陣列的長度 ( 也就是 6 ),是,下一行
- 執行判斷式 if,判斷 arr[0]=3 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,執行 i++ ( 也就是 i+1 ),i=1,判斷 1 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[1]=5 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,i++,i=2,判斷 2 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[2]=8 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,i++,i=3,判斷 3 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[3]=13 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,i++,i=4,判斷 4 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[4]=22 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,i++,i=5,判斷 5 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[5]=35 是否小於 0,不是,回到第一個迴圈
- 執行第一個迴圈,i++,i=6,判斷 6 是否小於 6,不是,跳出第一個迴圈,下一行
- 執行第二個迴圈,變數 i,初始值為 2,i=2,判斷 2 是否小於陣列的長度 ( 也就是 6 ),是,下一行
- 執行判斷式 if,判斷 arr[2]=8 是否不等於 arr[2-1]+arr[2-2] ( 也就是 5+3=8 ),否,回到第二個迴圈
- 執行第二個迴圈,執行 i++ ( 也就是 i+1 ),i=3,判斷 3 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[3]=13 是否不等於 arr[3-1]+arr[3-2] ( 也就是 8+5=13 ),否,回到第二個迴圈
- 執行第二個迴圈,i++,i=4,判斷 4 是否小於 6,是,下一行
- 執行判斷式 if,判斷 arr[4]=22 是否不等於 arr[4-1]+arr[4-2] ( 也就是 13+8=21 ),是,回傳 invalid
- 執行完畢