js数组截取方式splice()和slice()方法

js数组截取方式splice()和slice()方法js数组截取方式splice()和slice()方法1.splice()splice()方法可以添加元素、删除元素,也可以截取数组片段。删除元素时,将返回被删除的数组片段,因此可以使用splice()方法截取数组片段//传递一个参数,则该方法仅执行删除操作,参数值指定删除元素的起始下标(包含该下标元素)//splice()方法将删除后面所有元素vara=[1,2,3,4,5];//定义数组varb=a.splice(2);//从第三个元素开始执行删除console

大家好,又见面了,我是你们的朋友全栈君。

js数组截取方式splice()和slice()方法

1.splice()
splice() 方法可以添加元素、删除元素,也可以截取数组片段。删除元素时,将返回被删除的数组片段,因此可以使用 splice() 方法截取数组片段

// 传递一个参数,则该方法仅执行删除操作,参数值指定删除元素的起始下标(包含该下标元素)
//splice() 方法将删除后面所有元素
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2);  //从第三个元素开始执行删除
console.log(b);  //被删除的子数组是[1,2]
// 传递两个参数,则第 2 个参数值表示要删除元素的个数
// 特别注意:如果不执行删除操作,第 2 个参数值应该设置为 0,但是不能够空缺,否则该方法无效
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2,2);  //从第三个元素开始执行删除,删除元素个数为2个
console.log(b);  //被删除的子数组是[1,2,5]

var b = a.splice(2,0);  //不执行删除操作
console.log(b.constructor == Array);  //返回true,说明是一个空数组
// 传递三个或多个参数,则第 3 个以及后面所有参数都被视为插入的元素
var a = [1,2,3,4,5];  //定义数组
var b = a.splice(2,2,6,7);  
//从第三个元素开始执行删除,删除元素个数为2个,第三个及以后的参数作为需要插入的元素
console.log(a);  //返回[1,2,6,7,5]

// 特别注意1
// 当第 1 个参数值大于 数组length 属性值时,被视为在数组尾部执行操作,因此删除无效3
// 但是可以在尾部插入多个指定元素
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]

// 特别注意2
// 如果第 1 个参数为负值,则按绝对值从数组右侧开始向左侧定位。如果第 2 个参数为负值,则被视为 0
var a = [1,2,3,4,5];   //定义数组
var b = a.splice(-2,-2,6,7);  //第一、二个参数都为负值
console.log(a);  //返回[1,2,3,6,7,4,5]

2.slice()
slice() 方法与 splice() 方法功能相近,但是它仅能够截取数组中指定区段的元素,并返回这个子数组。该方法包含两个参数,分别指定截取子数组的起始和结束位置的下标

var a = [1,2,3,4,5];  //定义数组
var b = a.slice(2,4);  //截取第三个元素到第五个元素前的所有元素
console.log(b);  //返回[3,4,5]

// 特别注意1
// 第 1 个参数指定起始下标位置,包括该值指定的元素;第 2 个参数指定结束位置,不包括指定的元素

// 特别注意2
// 方法的参数可以自由设置。如果不传递参数,则不会执行任何操作
// 如果仅指定一个参数,则表示从该参数值指定的下标位置开始,截取到数组的尾部所有元素
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(2);  //截取数组中第三个元素,以及后面所有元素
console.log(b);  //返回[3,4,5]

// 特别注意3
// 当参数为负值时,表示按从右到左的顺序进行定位,即倒数定位法,而不再按正数顺序定位(从左到右)
// 但取值顺序依然是从左到右
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(-4,-2);  //截取倒数第四个元素到倒数第二个元素前的元素
console.log(b);   //返回[2,3]

// 特别注意4
// 如果起始下标值大于或等于结束下标值,将不执行任何操作
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(-2,-4);  //截取倒数第二个元素到倒数第四个元素前的元素
console.log(b);  //返回空集
// 上面示例说明数组在截取时,始终是按从左到右的顺序执行操作,而不会是从右到左的反向操作。

// 特别注意5
// 当起始参数值大于或等于 length 属性值时,将不会执行任何操作,返回空数组
// 如果第二个参数值大于 length 属性值时,将被视为 length属性值
var a = [1,2,3,4,5];  //定义数组
var b = a.slice(3,10);  //截取第四个元素,直到后面所有元素
console.log(b);  //返回[4,5]

slice() 方法将返回数组的一部分(子数组),但不会修改原数组。而 splice() 方法是在原数组基础上进行截取。如果希望在原数组基础上进行截取操作,而不是截取为新的数组,这时候就只能够使用 splice() 方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141799.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Drupal8的详细建站教程

    Drupal8的详细建站教程什么是drupal?    drupal是一个好用且功能强大的内容管理系统(CMS),通常也被称为是内容管理框架(CMF),由来自全世界各地的开发人员共同开发和维护,目前最新版本是Drupal8。安装drupal所需基础    建站环境:Windows或Linux操作系统   Web服务器:Apache,Nginx,Lighttpd,或微软的IIS服务器,

    2022年6月3日
  • 惠普笔记本连接不了无线网_惠普电脑连接不了无线网

    惠普笔记本连接不了无线网_惠普电脑连接不了无线网关于惠普电脑连不上无线网的问题,一些网友不太清楚该怎么办,那么下面就由学习啦小编来给你们说说惠普电脑连不上无线网的解决方法吧,希望可以帮到你们哦!惠普电脑连不上无线网的解决方法一:电脑连不上wifi,图标会有黄色叹号(我的连上所以没有),在右下角右键点击无线wifi图标,再点击打开网络和共享中心。在网络和共享中心里面点击左上角的更改适配器设置。进去以后一般可以看到3个连接,一个是蓝牙的,一个是有线…

    2022年8月13日
  • shiro框架的基本理解[通俗易懂]

    shiro框架的基本理解[通俗易懂]1.简介shiro是一个安全框架,可以进行认证、授权、密码加密、会话管理从外部来解析shiro框架:Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManage

    2022年9月3日
  • LaTex数学公式_markdown怎么写数学公式

    LaTex数学公式_markdown怎么写数学公式LaTeX数学公式,包含前言,注意事项,插入公式,注释,编号,转义字符,换行与对齐,字体,空格,上下标,括号,大括号和行标,分式,开方,对数,省略号,最值,方程组和分段函数,累加和累乘,矢量,积分,极限,导数与偏导,矩阵,表格,希腊字母,运算符,戴帽符号,特殊符号,等等。

    2022年5月3日
  • Windows环境安装ActiveMQ,Stomp扩展

    Windows环境安装ActiveMQ,Stomp扩展

    2022年3月13日
  • BeanUtils.copyProperties 详解

    BeanUtils.copyProperties 详解简介BeanUtils提供对Java反射和自省API的包装,其主要目的是利用反射机制对JavaBean的属性进行处理我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度用法BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties()方法,该方法定义如下:publicstaticvoidcopyProperties(Object

    2022年10月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号