当前位置: 首页 > Web前端 > JavaScript

JavaScript中数组的拼接方法和切片方法详解

时间:2023-03-27 10:55:53 JavaScript

JavaScript中数组的拼接方法和切片方法详解最近在做一些算法题。不能说不知道splice方法和slice方法怎么用,但是写Question总是有点小,整理一下,尝试两个小例子写一篇文章就完全理解了。splice方法splice()方法通过删除现有元素和/或添加新元素来更改数组的内容。一般使用的格式是array.splice(start)array.splice(start,deleteCount)array.splice(start,deleteCount,item1,item2,...)其中start是修改开始的位置,deleteCount从start开始删除多少内容,如果有其他参数,表示在start的位置插入相应的元素。让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()**方法返回一个新的数组对象,是由begin和end(包括begin,不包括end)确定的原始数组的浅拷贝。原数组不会改变。constanimals=['蚂蚁','野牛','骆驼','鸭子','大象'];console.log(animals.slice(2));//预期输出:Array["camel","duck","elephant"]console.log(animals.slice(2,4));//预期输出:Array["camel","duck"]console.log(animals.slice(1,5));//预期输出:Array["bison","camel","duck","elephant"]console.log(animals.slice(-2));//预期输出:Array["duck","elephant"]特例letb=[1,2,3,4]b.slice(-2,3)[3]b.slice(-2,4)(2)[3,4]b.slice(-2,-1)[3]可以看出这两个参数可以正也可以负,主要看有没有是区间中对应的一个内容,另外,它的值为[start,end)一般我是这样的所用的leta=[1,2,3]leti=1letb=a.splice(i,i+1)//表示从i中取出长度为1的数组,两者区别挺大的,注意不要每次都用错第二个参数