数组方法push、pop、shift、unshift、slice、splice对比总结

这几个数组方法都是很常用的,也很简单,但老是搞不清他们的返回值,所以今天闲着没事写篇文章理一理。

push往数组后面追加一个元素,unshift往数组前面追加一个元素,pop删除数组最后的一个元素、shift删除数组第一个元素

注:push、unshift返回的是新数据长度,pop、shift返回的是删除的元素,四个方法都会改变原数组

总结:添加返新数组的长度、删除返删除的元素,都会改变元素组


splice和slice这两个相信是很多人容易搞混的,他们不仅长的像,功能也有一些一样这里主要讲下他们的不同点,

const arr = [1,2,3,4]
const a = arr.splice(2)
console.log(a)  //[3,4]
console.log(arr)  //[1,2]
const arr = [1,2,3,4]
const a = arr.slice(2)
console.log(a)  //[3,4]
console.log(arr)  //[1,2,3,4]

从上面例子可以看出,当只传一个参数值,splice、slice返回值是一样的,但有一点要特别注意:slice并没有改变原数组,这也是他和其他五种方法都不一样的地方,基于这个特性,我们可以用slice来快速复制数组,let arr2=arr.slice(),这样即可

接着我们看看他们的第二个参数

const arr = [1,2,3,4]
const a = arr.splice(1,3)
console.log(a) //[2,3,4]
console.log(arr) //[0]
const arr = [1,2,3,4]
const a = arr.slice(1,3)
console.log(a) //[2,3]
console.log(arr) //[1,2,3,4]

splice第二个参数表示从索引开始要截取的元素长度,slice则是截取的结束索引,既然是结束索引,就可以是负数,splice第二个参数为负数虽然不会报错,但返回一直为空数组,还有一点要注意,slice截取时包含前索引,不包含后索引

猜你喜欢

转载自blog.csdn.net/qq_35484341/article/details/81533210