数组处理方法总结

时间:2022-09-26 13:02:14

今天遇到了一个操作数组的问题,概念有点模糊,整理一下。

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值,或数组进行升序或者降序排序

参考这个作者https://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"] 不变