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