--- tags: JavaScript, Codewar,7kyu Incrementer title: Codewars - 7kyu Incrementer --- ###### tags: `Codewars` 、`JavaScript` 、`7kyu Incrementer` ###### *date: 2022 / 11/ 10* # 💪 7 kyu Incrementer **思考方式:** 將陣列傳入的數字從第一個數字開始加一、第二數字加二,依序下去 如果數字的累加的位數超過兩位,則取個位數,最後將依序將累加完的數字返回陣列格式。 **方法一. 雙迴圈 .map 兩次 + 三元運算子做條件判斷** 1. 先用 `.map()`,將 `num + (index)索引位置 +1` 進行數字遞增累加 + 1 、+ 2....。 2. 在使用一次 `.map()`,並`判斷數字是否等於大於10` ,且為兩位數的話,將數字使用 `.toString() `轉為字串並使用`.slice(-1)` 3. 取個位數在使用 `Number()`轉型為數字,並將計算完的數字返回陣列格式。 ```jsx = function incrementer(nums) { return nums .map((num, index) => num + (index + 1)) .map(num => { return num >= 10 ? Number(num.toString().slice(-1)) : num; }); }; console.log(incrementer([])); //[] console.log(incrementer([1, 2, 3])); //[2, 4, 6] console.log(incrementer([4, 6, 7, 1, 3])); // [5, 8, 0, 5, 8] console.log(incrementer([3, 6, 9, 8, 9])); // [4, 8, 2, 2, 4] ``` **方法二. 參考codewars 解法,利用取 .map() + 取餘數** 1. 使用 `.map(),將 num + (index)索引位置 +1` 進行數字遞增累加 + 1 、+ 2....。 2. 最後使用`取餘數 % 10` ,將兩位數的數字取個位數,最後將累加完的數字返回陣列格式。 ```jsx= function incrementer(nums) { return nums.map((num, index) => (num + index + 1) % 10); }; console.log(incrementer([])); //[] console.log(incrementer([1, 2, 3])); //[2, 4, 6] console.log(incrementer([4, 6, 7, 1, 3])); // [5, 8, 0, 5, 8] console.log(incrementer([3, 6, 9, 8, 9])); // [4, 8, 2, 2, 4] ```