# 1486. XOR Operation in an Array
## 題目概要
給定 n 和 start,n 為陣列長度,start 為從哪個數開始。
陣列中的每個元素都比上一個元素多2,請求出陣列所有元素 XOR 的結果。
```
Example 1:
Input: n = 5, start = 0
Output: 8
Explanation: Array nums is equal to [0, 2, 4, 6, 8] where (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8.
Where "^" corresponds to bitwise XOR operator.
Example 2:
Input: n = 4, start = 3
Output: 8
Explanation: Array nums is equal to [3, 5, 7, 9] where (3 ^ 5 ^ 7 ^ 9) = 8.
```
## 解題技巧
- 從 start 開始每個元素之間差 2,公式為:`(start + (2 * i))`。
## 程式碼
寫法一:
```javascript=
/**
* @param {number} n
* @param {number} start
* @return {number}
*/
var xorOperation = function(n, start) {
let result = 0;
for(let i = 0; i < n; i++) {
result ^= start + 2 * i;
}
return result;
};
```

寫法二:
先命一個長度為 n 的陣列並且以 0 填滿,再用 map 遍歷填上每個元素的值,最後用 reduce 做 XOR 計算。
```javascript=
/**
* @param {number} n
* @param {number} start
* @return {number}
*/
var xorOperation = function(n, start) {
return Array(n)
.fill(0)
.map((x, i) => start + 2 * i)
.reduce((prev, cur) => prev ^ cur, 0);
};
```
