常見陣列方法的總結

2022-04-02 10:47:49 字數 4201 閱讀 3634

經過整理,我們發現array原型中可以改變陣列自身內容的方法有 7 個,分別是pushpopshiftunshiftsplicesortreverse

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()的陣列

注意**函式第一次執行時,accumulatorcurrentvalue的取值有兩種情況:如果呼叫reduce()時提供了initialvalueaccumulator取值為initialvaluecurrentvalue取陣列中的第乙個值;如果沒有提供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...