JavaScript数组小结~
在之前学习完数组,对数组进行详细总结后,发现实际操作中总会记混各个方法的返回值,也会忘记方法是否会改变原数组,于是在这篇博客中来一个小结
方法分类回顾
直接上图来回顾之前学到的各个方法吧!
原数组与返回值
方法 | 返回值 | 是否改变原数组 |
---|---|---|
push(v) | 返回数组的新长度 | ✔️ |
pop() | 返回删除的元素 | ✔️ |
shift() | 返回删除的元素 | ✔️ |
unshift() | 返回数组的新长度 | ✔️ |
reverse() | 返回颠倒后的数组 | ✔️ |
sort() | 返回排序后的数组 | ✔️ |
concat() | 返回连接后的新数组 | ❌ |
slice(begin,end) | 返回由begin 和 end 决定的原数组的浅拷贝 |
❌ |
splice(begin,deleteCount,items) | 返回被删除元素组成的数组 | ✔️ |
every() | 返回一个布尔值 | ❌ |
forEach() | undefined | ❌ |
some() | 返回一个布尔值 | ❌ |
filter() | 一个新的、由符合条件的元素组成的数组 | ❌ |
map() | 一个由原数组每个元素执行回调函数的结果组成的新数组 | ❌ (基础类型)✔️(引用类型) |
reduce() | 函数累计处理的结果 | ❌ |
详解
挑出几个常用易错的进行记录
slice()
slice()
方法返回一个新的数组对象,这一对象是一个由 begin
和 end
决定的原数组的浅拷贝(包括 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方法是否原数组可以参考下面博客: