經過整理,我們發現array
原型中可以改變陣列自身內容的方法有 7 個,分別是push
、pop
、shift
、unshift
、splice
、sort
和reverse
push/unshift/pop/shift/
push
返回值是push
後的陣列長度
var arr = [0, 1, 2]
console.log(arr.push(3) // 4; 返回值是push後陣列的長度
console.log(arr) // [0, 1, 2, 3]; 會改變原陣列
unshift
返回值是unshift
後陣列的長度
var arr = [1, 2, 3]
console.log(arr.unshift(0)) // 4; 返回值是unshift後陣列的長度
console.log(arr) // [0, 1, 2, 3]; 會改變原陣列
pop
返回值是pop
出來的元素
var arr = [1, 2, 0]
console.log(arr.pop()) // 0; 返回值是pop出來的元素
console.log(arr) // [1, 2]; 會改變原陣列
shift
返回值是shift
出來的元素
var arr = [1, 2, 3]
console.log(arr.shift()) // 1; 返回值是shift出來的元素
console.log(arr) // [2, 3]; 會改變原陣列
splice
// 刪除
var arr = [1, 2, 3]
var newarr = arr.splice(1, 1)
console.log(newarr) // [2] // 返回值是包含splice刪除元素的新陣列
console.log(arr) // [1, 3] // 會改變原陣列
// newarr 與 arr 是不同的兩個陣列
// 增加
var arr = [1, 2, 3]
console.log(arr.splice(1, 0, 4, 4)) //
console.log(arr) // [1, 4, 4, 2, 3]
reverse
var arr = [1, 2, 3]
var newarr = arr.reverse()
console.log(newarr) // [3, 2, 1] // 返回值是reverse翻轉後的原陣列
console.log(arr) // [3, 2, 1] // 會改變原陣列
// newarr 與 arr 指向同乙個陣列
sort
var arr = [1, 4, 3, 2]
var newarr = arr.sort((a, b) => a - b)
console.log(newarr) // [1, 2, 3, 4]; 返回值是sort排序後的原陣列
console.log(arr) // [1, 2, 3, 4]; 會改變原陣列
// newarr 與 arr 指向同乙個陣列
不會改變原陣列的方法
slice
var arr = [1, 2, 3]
var newarr = arr.slice(0, 2)
console.log(newarr) // [1, 2]; 返回值是slice切片後的新陣列
console.log(arr) // [1, 2, 3]; 不會改變原陣列
// newarr 與 arr 是不同的兩個陣列
concat
var arr = [1, 2, 3]
var newarr = arr.concat([4])
console.log(newarr) // [1, 2, 3, 4]; 返回值是concat合併後的新陣列
console.log(arr) // [1, 2, 3]; 不會改變原陣列
// newarr 與 arr 是不同的兩個陣列
foreach/map/filter
foreach
對陣列中的每一項執行給定函式,該方法沒有返回值,並且不會改變原陣列
arr.foreach(function
callback(currentvalue[, index[, array]]) [, thisarg])
map
對陣列中的每一項執行給定函式,返回陣列每一項map
對映之後的值組成的新陣列,並且不會改變原陣列
var new_array = arr.map(function
callback(currentvalue[, index[, array]]) [, thisarg])
filter
對陣列中的每一項執行給定函式,返回陣列中通過filter
過濾函式結果為ture
的項組成的新陣列,並且不會改變原陣列
var newarray = arr.filter(function
callback(currentvalue[, index[, array]]) [, thisarg])
reduce
reduce
返回的是reduce
歸併後彙總成的單個值,並且不會改變原陣列
arr.reduce(function
callback(accumulator, currentvalue[, index[, array]]) [, initialvalue])
引數
accumulator
累計器累計**的返回值; 它是上一次呼叫**時返回的累積值,或initialvalue
currentvalue
陣列中正在處理的元素
index
(可選)
陣列中正在處理的當前元素的索引。 如果提供了initialvalue
,則起始索引號為0,否則從索引1起始
array
(可選)
呼叫reduce()
的陣列
注意**函式第一次執行時,accumulator
和currentvalue
的取值有兩種情況:如果呼叫reduce()
時提供了initialvalue
,accumulator
取值為initialvalue
,currentvalue
取陣列中的第乙個值;如果沒有提供initialvalue
,那麼accumulator
取陣列中的第乙個值,currentvalue
取陣列中的第二個值。
var arr = [1, 2, 3]
var reducer = function (accumulator, currentvalue)
var res = arr.reduce(reducer)
console.log(res) // 6; 返回值是reduce歸併後的結果
var res = arr.reduce(reducer, 5) // 11;
console.log(arr) // [1, 2, 3]; 不會改變原陣列
常見陣列的方法總結
arrayobj.pop 就是向陣列中刪除陣列最後乙個元素並且返回該元素。如果陣列為空就返回undefined。join 方法用於把陣列中的所有元素放入乙個字串。元素是通過指定的分隔符進行分隔的。返回乙個字串。reverse 方法會對反轉陣列項的順序。var values 1,2,3,4,5 val...
常見的陣列方法
slice 方法可從已有陣列中返回選定的元素,返回乙個新陣列,包含從start到end 不包含結束 的陣列元素。var arr 11,22,33,44,55 console.log arr.slice 1,3 22,33 返回選擇的元素 console.log arr 11,22,33,44,55 ...
陣列方法總結
js的裡面的陣列方法有很多,平時開發中常用的如foreach map filter等等,接下來是對陣列方法的一些使用和總結,方便日後查閱。var a 1,2,3,4 console.log a.join 1,2,3,4 console.log a.join 1234 console.log a.jo...