关于javascript:JavaScript中数组的splice方法和slice方法详解

9次阅读

共计 1252 个字符,预计需要花费 4 分钟才能阅读完成。

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 的数组进去

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

正文完
 0