數組處理方法總結
今天遇到了一個操作數組的問題,概念有點模糊,整理一下。
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"] 不變