今天遇到了一个操作数组的问题,概念有点模糊,整理一下。
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"] 不变