數組處理方法總結

今天遇到了一個操作數組的問題,概念有點模糊,整理一下。

some()

作用:判斷是否有元素符合func條件,返回一個Boolean

不會修改原數組


const arr = [1,2,3,4]; arr.some((item)=>{return item>1})

打印結果: true

every()

作用:判斷每個元素是否符合func條件,返回一個Boolean

不會修改原數組

const arr1 = [1,2,3,4]; arr.every((item)=>{return item>3});
打印結果:
false

filter()

作用:返回一個符合func條件的元素數組(es6),可以用於刪除某個元素,過濾符合或不符合元素。

不會修改原數組

let ages = [33,44,55,66,77]; ages.filter((item)=>{return item>18})
打印結果[33, 44, 55, 66, 77]

map()

作用:返回一個新的array,數組元素由每一次調用函數產生結果組成,需要操作數組中的全部元素

不會修改原數組

const arr =[1,2,3,4,5,6]; arr.map((item)=>{return item*10})
打印結果 [10, 20, 30, 40, 50, 60]

shift()

作用:將第一個元素刪除並且返回刪除元素,空即為undefined

修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.shift()
console.log(a)         // a
console.log(arr)       // ['b', 'c', 'd']

unshift()

作用:向數組開頭添加元素,並新數組

修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.unshift(0)
console.log(a)        // 5 返回數組長度
console.log(arr)      // [0, 'a', 'b', 'c', 'd']

pop()

作用:刪除最後一個並返回刪除的元素

修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.pop()
console.log(a)        // d
console.log(arr)      // ['a', 'b', 'c']

push()

作用:向數組末尾添加元素,並返回新的長度

修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.push('f')
console.log(a)        // 5 返回數組長度
console.log(arr)      // ['a', 'b', 'c', 'd', 'f']

reverse()

作用:顛倒數組順序

修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.reverse()
console.log(a)        // ["d", "c", "b", "a"]
console.log(arr)      // ["d", "c", "b", "a"]

sort()

作用:可以根據對象內的number值,或數組進行升序或者降序排序

參考這個作者//juejin.cn/post/6971367726401093668

修改原數組

slice()

作用:刪除,增加,替換數組元素,返回被刪除數組,無刪除則不返回

修改原數組

刪除
let arr = [1,2,3,4,5]
	arr.splice(1,3)//從第一個元素後面,刪除三個元素
	alert(arr)//1,5
增加
        arr.splice(1,0,'abc')//從第一個元素後面,添加abc元素
	alert(arr)//1,abc,2,3,4,5
替換
        arr.splice(2,2,'a','b')//從第二個元素後面,添加a,b元素
	alert(arr) //1,2,a,b,5

concat()

作用:拼接數組,返回新數組

不修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.concat(['e', 'f'])
console.log(a)        // 新數組 ["a", "b", "c", "d", "e", "f"]
console.log(arr)      // ["a", "b", "c", "d"] 不變

join()

作用:將數組中所有元素以參數作為分隔符放入一個字符

不修改原數組

let arr = ['a', 'b', 'c', 'd']
let a = arr.join('-')
console.log(a)        // 字符串 a-b-c-d
console.log(arr)      // ["a", "b", "c", "d"] 不變

slice()

作用:提取某個元素(按索引提取)

不改變

let arr = ['a', 'b', 'c', 'd']
let a = arr.slice(1)
console.log(a)        // ["b", "c", "d"]
console.log(arr)      // ["a", "b", "c", "d"] 不變
Tags: