---
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]
```