JavaScript中数组的splice方法和slice方法详解

简介: 最近在做一些算法题,不能说不知道splice方法和slice方法怎么用,但是总是写出来有点点小问题,干脆就整理一下,再试两个小例子写一篇文章,彻底弄明白。

JavaScript中数组的splice方法和slice方法详解

最近在做一些算法题,不能说不知道splice方法和slice方法怎么用,但是总是写出来有点点小问题,干脆就整理一下,再试两个小例子写一篇文章,彻底弄明白。

splice方法

splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。

一般使用的格式是这样的

array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, ...)

其中start是修改开始的位置,deleteCount是从start开始删除多少内容,其余的参数如果有的话就表示在start这个位置插入对应的元素。

下面针对边界条件举几个例子

let arr = [1,2,3,4,5]

arr.splice()
// []
arr
//  [1, 2, 3, 4, 5]
arr.splice(-1)
// [5]
arr
// [1, 2, 3, 4]
arr.splice(-8)
// [1, 2, 3, 4]
arr
// []

可以看到哈:splice方法会直接修改原数组,同时返回截取的数组内容。如果start是负数,就倒着从后往前截取

由于splice方法是对原数组进行修改

我们经常用的就是arr.splice(X,X,XXX)这样的形式,而不会把它专门赋值给另一个变量

slice方法

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

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2));
// expected output: Array ["duck", "elephant"]

特殊例子

let b = [1,2,3,4]
b.slice(-2,3)
[3]
b.slice(-2,4)
(2) [3, 4]
b.slice(-2,-1)
[3]

可以看出,两个参数都可以为正或者负,主要是看区间里是不是有对应的内容,此外,它的取值是[start,end)

一般情况下我是这么用的

let a = [1,2,3]
let i = 1
let b = a.splice(i,i+1) //表示从i这里取长度为1的数组出来

两者区别还挺大的,小心别每次第二个参数用错了

相关文章
|
7月前
|
存储 JavaScript 前端开发
JS 数组操作的利器:splice() 和 slice() 方法详解
JS 数组操作的利器:splice() 和 slice() 方法详解
148 0
|
3月前
|
JavaScript 前端开发 索引
JavaScript 数组中splice()的用法
本文介绍了JavaScript数组方法splice()的三种用法:删除元素、插入元素和替换元素,通过具体代码示例展示了如何使用splice()方法进行数组的修改操作。
|
4月前
|
JavaScript 前端开发 开发者
|
JavaScript 前端开发 索引
深入理解 JavaScript 中的 slice 方法
在 JavaScript 中,slice() 是一个常用的数组方法,用于从现有数组中提取一部分元素,然后返回一个新的数组。它是一个非常有用的工具,可以帮助你在不改变原始数组的情况下操作数组的子集。本文将介绍 slice() 的基本概念、使用方法、实践案例和互动练习,以帮助你更好地理解和掌握这一功能强大的方法。
|
JavaScript 前端开发 索引
JavaScript 数组方法 slice() 的 5 个示例
slice() 方法将数组部分的副本返回到新的数组对象中。这个对象是从 start 到 end 选择的。需要注意的是,此方法不会修改原始数组。此外,如果向其中一个数组添加新元素,则另一个数组不会受到影响。
245 0
JavaScript 数组方法 slice() 的 5 个示例
|
JavaScript 前端开发 索引
|
JavaScript 安全 索引
js中foreach,for in,for of的使用及区别,遍历对象,遍历数组使用的不一样 JavaScript
js中foreach,for in,for of的使用及区别,遍历对象,遍历数组使用的不一样 JavaScript
182 0
|
前端开发 JavaScript 索引
JavaScript数组方法中 push() 和 unshift() 的区别
在给数组push的时候发现一个新的方法unshift() 就找了一下区别: push() push() 方法(在数组结尾处)向数组添加一个新的元素: var webKnowledge = ["HTML", "CSS", "JS", "VUE"]; webKnowledge.push("REACT"); // 向 webKnowledge 添加一个新元素 REACT //新数组为:["HTML", "CSS", "JS", "VUE", "REACT"] push() 方法返回新数组的长度: var webKnowledge = ["HTML", "CSS", "JS",
|
JavaScript 前端开发 索引
JavaScript 数组方法 splice() 的 3 个示例
splice() 方法可以从数组中排除旧值,然后将新值插入数组。使用 splice() 后,将获得两个数组,第一个是排除的数组,第二个是编辑过的新数组。 需要注意的是,此方法会改变原数组。
129 0