---
# System prepended metadata

title: JS筆記 陣列常用方法（一）（回傳陣列）

---

# JS筆記 陣列常用方法（一）（回傳陣列）

**map方法**
```javascript
const arr1 =[1,2,3,4];
const arr2 = arr1.map((x) x*2);
console.log(arr2);
```
這裡印出[2,4,6,8]
map方法，會將陣列裡的元素帶入x，然後**回傳**新的陣列。

**filter方法**
```javascript
const arr1 =[1,2,3,4];
const arr2 = arr1.filter((x) => x>2 );
console.log(arr2);
```
印出[3, 4]
filter會針對特定條件對陣列的每個元素進行過濾，**回傳**新的陣列。

**sort方法**
```javascript
const arr1 =[1,5,2,4];
const arr2 = arr1.sort((a,b) => a-b );
console.log(arr2);
```
印出[1, 2, 4, 5]
排列由小到大

**sort語法**
當(a,b)的回傳值小於 0，則會把 a 排在小於 b 之索引的位置，即 a 排在 b 前面。

當(a, b) 回傳 0，則 a 與 b 皆不會改變彼此的順序，但會與其他全部的元素比較來排序。

當(a, b) 的回傳值大於 0，則會把 b 排在小於 a 之索引的位置，即 b 排在 a 前面。

因此，只要改一下就能把排序由小到大變成由大到小
```javascript
const arr1 =[1,5,2,4];
const arr2 = arr1.sort((a,b) => b-a );
console.log(arr2);
```
印出[5, 4, 2, 1]

sort由小到大寫法可以省略
```javascript
const arr1 =[1,5,2,4];
const arr2 = arr1.sort(();
console.log(arr2);
```
印出[1, 2, 4, 5]

要注意的是sort方法的**回傳**是排序後的陣列，而不是原陣列的拷貝。

**concat方法**
```javascript
const arr1 =[1,2,3];
const arr2 =[a,b,c];
const arr3 = array1.concat(array2);
```
concat方法會把arr2接在arr1後面，合在一起變成新的陣列。這裡**回傳**一個新的陣列。
