首页 技术资料正文

JS截取数组:使用splice(函数指针)和slice()方法()

piaodoo 技术资料 2022-08-27 02:09:56 836 0

JS截取数组:使用splice(函数指针)和slice()方法()

JS截取数组:使用splice()和slice()方法

JS 截取数组(得到数组片段)的方法有两种,分别是使用 splice() 和 slice() 方法,简单说明如下。

使用 splice() 截取数组

splice() 方法可以添加元素、删除元素,也可以截取数组片段。删除元素时,将返回被删除的数组片段,因此可以使用 splice() 方法截取数组片段。由于 splice() 方法的功能多,参数复杂,使用时应该注意下面几个问题。1) splice() 方法的参数是可选的。如果不给它传递参数,则该方法不执行任何操作。如果给它传递一个参数,则该方法仅执行删除操作,参数值指定删除元素的起始下标,(包含该下标元素),splice() 方法将删除后面所有元素。
  • 如果指定两个参数,则第 2 个参数值表示要删除元素的个数。
  • 如果指定三个或多个参数,则第 3 个以及后面所有参数都被视为插入的元素。
  • 如果不执行删除操作,第 2 个参数值应该设置为 0,但是不能够空缺,否则该方法无效。
2) splice() 方法的删除和插入操作是同时进行的,且是在原数组基础上执行操作。插入的元素将填充被删除元素的位置,并根据插入元素个数适当调整插入点位置。而不是在删除数组之后重新计算插入点的位置。3) splice() 方法执行的返回值是被删除的子数组。
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2);  //从第三个元素开始执行删除
console.log(b);  //被删除的子数组是[1,2]
如果没有删除元素,则返回的是一个空数组。
var b = a.splice(2,0);  //不执行删除操作
console.log(b.constructor == Array);  //返回true,说明是一个空数组
4) 当第 1 个参数值大于 length 属性值时,被视为在数组尾部执行操作,因此删除无效,但是可以在尾部插入多个指定元素。
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(6,2,2,3);  //起始值大于length属性值
console.log(a);  //返回[1,2,3,4,5,2,3]
5) 参数取负值问题。如果第 1 个参数为负值,则按绝对值从数组右侧开始向左侧定位。如果第 2 个参数为负值,则被视为 0。
var a = [1,2,3,4,5];   //定义数组
var b = a.splice(-2,-2,2,3);  //第一、二个参数都为负值
console.log(a);  //返回[1,2,3,2,3,4,5]

使用 slice() 截取数组

slice() 方法与 splice() 方法功能相近,但是它仅能够截取数组中指定区段的元素,并返回这个子数组。该方法包含两个参数,分别指定截取子数组的起始和结束位置的下标。
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(2,5);  //截取第三个元素到第六个元素前的所有元素
console.log(b);  //返回[3,4,5]
使用该方法时,应该注意下面几个问题。1) 第 1 个参数指定起始下标位置,包括该值指定的元素;第 2 个参数指定结束位置,不包括指定的元素。2) 该方法的参数可以自由设置。如果不传递参数,则不会执行任何操作;如果仅指定一个参数,则表示从该参数值指定的下标位置开始,截取到数组的尾部所有元素。
var b = a.slice(2);  //截取数组中第三个元素,以及后面所有元素
console.log(b);   //返回[3,4,5]
3) 当参数为负值时,表示按从右到左的顺序进行定位,即倒数定位法,而不再按正数顺序定位(从左到右),但取值顺序依然是从左到右。
var b = a.slice(-4,-2);  //截取倒数第四个元素到倒数第二个元素前的元素
console.log(b);   //返回[2,3]
如果起始下标值大于或等于结束下标值,将不执行任何操作。
var b = a.slice(-2,-4);  //截取倒数第二个元素到倒数第四个元素前的元素
console.log(b);  //返回空集
上面示例说明数组在截取时,始终是按从左到右的顺序执行操作,而不会是从右到左的反向操作。4) 当起始参数值大于或等于 length 属性值时,将不会执行任何操作,返回空数组。而如果第二个参数值大于 length 属性值时,将被视为 length属性值。
var b = a.slice(3,10);  //截取第四个元素,直到后面所有元素
console.log(b);  //返回[4,5]
5) slice() 方法将返回数组的一部分(子数组),但不会修改原数组。而 splice() 方法是在原数组基础上进行截取。如果希望在原数组基础上进行截取操作,而不是截取为新的数组,这时候就只能够使用 splice() 方法了。

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/119442.html

搜索