題目連結:
思考邏輯:
這題還算簡單
發現for
和for...of
用法還是有一點差別
如果使用for...of
要先判斷array是否為0
單純使用for
就可以不用
因為這裡頭的i不太一樣
for..of
的i是直接取值
for
則是位置
版上看到使用reduce
很有效率的解法
reduce((acc , cur) => a+b, 0)
acc為累加器
cur為當前迭代的元素
(acc , cur) => a+b
這行箭頭函示就是array的總和
0則為初始值
這樣處理真的很有效率!
解法:
for..of...
function oddOrEven(array) { if(array.length === 0) return 'even' let sum = 0 for(let i of array){ sum += i } if(sum % 2 === 0) return 'even' else return 'odd' }
for
function oddOrEven(array) { let sum = 0 for(let i=0; i<array.length; i++){ sum += array[i] } if(sum % 2 === 0) return 'even' else return 'odd' }
- reduce
function oddOrEven(arr) { return arr.reduce((a,b)=>a+b,0) % 2 ? 'odd' : 'even'; }