.join('x')
把每個元素用x接在一起var elements = ['Fire', 'Air', 'Water'] console.log(elements.join('-')) // 印出 Fire-Air-Water
.map()
映射,將函式應用於每個元素
=>
箭頭函式運算式擁有比函式運算式還簡短的語法。var array1 = [1, 4, 9, 16] var map1 = array1.map(x => x * 2) console.log(map1) // 印出 [2, 8, 18, 32]
var array1 = [1, 4, 9, 16] function map1(x){ return x * 2 } console.log(array1.map(map1))
var array1 = [1, 4, 9, 16] console.log(array1.map(function map1(x){ return x * 2 } ) .map(function map1(x){ return x * -1 } ) // 可以無限往下接一直接.map ) // 印出 [-2, -8, -18, -32]
map calls a provided callback function once for each element in an array, in order, and constructs a new array from the results.
map
會將所有陣列中的元素依序分別傳入一次至callback
函式當中,並以此回呼函式每一次被呼叫的回傳值來建構一個新的陣列。 MDN .map文章參考
- map 內部是做了 immutable 的機制,Array.prototype 底下的這些高階函式
大多都具有這樣函數式編程裡非常注重的特性 - immutable,不會去改變資料
來源本身原有的值
.filter()
會把東西過濾掉,true會留下來,falsevar array1 = [1, -4, 9, -16] console.log(array1.filter(function(x){ return x > 0 }) ) // 印出 [1, 9]
要注意每個函式回傳的型態
.slice()
分片var array1 = [1, -4, 9, -16] console.log(array1.slice(2)) //從索引值 2 後面的全都要保留 // 印出 [9, -16]
var array1 = [1, -4, 9, -16, 1 , 2 , 3] console.log(array1.slice(2,5)) //從索引值 2 後面到 5 停止 // 印出 [9, -16, 1]
.splice()
會改變原本的陣列const months = ['Jan', 'March', 'April', 'June']; months.splice(4, 1, 'May'); // replaces 1 element at index 4 console.log(months); // expected output: Array ["Jan", "March", "April", "May"]
const宣告的是常數,常數在被宣告時就務必要指定給值,不然會產生錯誤。
而且常數是不可再指定(can't re-assignment)的。
譬如說: 計算圓面積時,π這個值是固定的,並且希望之後也不要被更改,這時候我們就可以使用const將他宣告成常數。
JavaScript 宣告: var、let、const
.sort()
會改變原本的陣列const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // expected output: Array ["Dec", "Feb", "Jan", "March"] //按照 abcd....字母順序排 const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // expected output: Array [1, 100000, 21, 30, 4] //按照字串排,所以先比第一個字,再比第二個字
// 由小排到大 var arr = [1, 36, 21, 30, 4] arr.sort(function(a,b){ if (a===b) return 0 if (b>a) return -1 // 後面比前面大,不換 return 1 }) console.log(arr) // 印出 [1, 4, 21, 30, 36]
// 由大排到小 var arr = [1, 36, 21, 30, 4] arr.sort(function(a,b){ return b-a // b-a 如果是正數,代表要換位置,那數字比較大的就會一直往前排 }) console.log(arr)
.sort()
Return value
The sorted array. Note that the array is sorted in place, and no copy is made.