來自 LIOJ 上的題目,因為另外兩個解法很有趣,所以想特別記錄一下。
解法一
應該大部分的人都是這樣解的 => 碰到最後一個元素時,不加上分隔值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function join(arr, separator) { let result = '' for(let i=0; i<arr.length; i++) { if(i !== arr.length-1) { result += arr[i] + separator } else { result += arr[i] } } return result } console.log(join(['1', '2', '3'], '!'))
|
解法二
如果先把第一個元素給排除,會發現後面都是同個規律 => 看成是 1 + !2 + !3:
1 2 3 4 5 6 7 8 9 10 11 12
| function join(arr, separator) { let result = arr[0] for(let i=1; i<arr.length; i++) { result += separator + arr[i] } return result } console.log(join(['1', '2', '3'], '!'))
|
解法三
跟解法二的邏輯一樣,只是現在變成 => 1! + 2! + 3:
1 2 3 4 5 6 7 8 9 10 11
| function join(arr, separator) { let result = '' for(let i=0; i<arr.length-1; i++) { result += arr[i] + separator } return result + arr[arr.length-1] } console.log(join(['1', '2', '3'], '!'))
|