在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。
範例(輸入->輸出)
* [1, 2, 3, 4] -> [4, 3, 2, 1]
* [9, 2, 0, 7] -> [7, 0, 2, 9]
依據題意可整理出以下重點:
1. 先建立一個新陣列,預備存放反轉後的結果
2. 取得既有陣列的長度,再透過迴圈遞減索引值,就能將舊陣列的指定值從後到前依序放入到新陣列,最終達到反轉效果。這邊需要特別注意陣列的索引值是從 0 開始,因此最大索引值會比陣列總長度少 1
function reverseList(list) {
return list.reverse();
}
這次嘗試使用比較迂迴 (?) 的方式撰寫,來練習使用迴圈吧!
function reverseList(list) {
let newArr = [];
for (let i = list.length - 1; i > -1; i--) {
newArr.push(list[i]);
}
return newArr;
}
或是這樣寫:
function reverseList(list) {
let newArr = [];
for (let i = 0; i < list.length; i++) {
newArr.push(list[list.length - 1 - i]);
}
return newArr;
}
又或是使用陣列方法:
function reverseList(list) {
return list.map((item, index) => {
return list[list.length - 1 - index];
});
}
今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~