JavaScript数组小结~

在之前学习完数组,对数组进行详细总结后,发现实际操作中总会记混各个方法的返回值,也会忘记方法是否会改变原数组,于是在这篇博客中来一个小结

方法分类回顾

直接上图来回顾之前学到的各个方法吧!

原数组与返回值

方法 返回值 是否改变原数组
push(v) 返回数组的新长度 ✔️
pop() 返回删除的元素 ✔️
shift() 返回删除的元素 ✔️
unshift() 返回数组的新长度 ✔️
reverse() 返回颠倒后的数组 ✔️
sort() 返回排序后的数组 ✔️
concat() 返回连接后的新数组
slice(begin,end) 返回由beginend 决定的原数组的浅拷贝
splice(begin,deleteCount,items) 返回被删除元素组成的数组 ✔️
every() 返回一个布尔值
forEach() undefined
some() 返回一个布尔值
filter() 一个新的、由符合条件的元素组成的数组
map() 一个由原数组每个元素执行回调函数的结果组成的新数组 ❌ (基础类型)✔️(引用类型)
reduce() 函数累计处理的结果

详解

挑出几个常用易错的进行记录

slice()

slice() 方法返回一个新的数组对象,这一对象是一个由 beginend 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

let arr = [1, 2, 3, 4, 5]
let a = arr.slice(0, 2)
console.log(a);//[1,2]
console.log(arr);//[1,2,3,4,5]

splice()

splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法将改变原数组。

array.splice(start, deleteCount, arguments)
复制代码
  • start 指定修改的开始位置(从0计数)
  • deleteCount 整数,表示要移除的数组元素的个数
  • arguments 要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素
let arr = [1, 2, 3, 4, 5]
let a = arr.splice(1, 2, 22, 33)
console.log(a);//[2,3]
console.log(arr);//[1,22,33,4,5]

map()

关于map方法是否原数组可以参考下面博客:

JS 数组map()方法到底会不会改变原数组