# 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後面,合在一起變成新的陣列。這裡**回傳**一個新的陣列。