splice() 方法

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

由于 splice() 方法的功能多,参数复杂,使用时应该注意下面几个问题。

  1. splice()方法的参数是可选的。如果不给它传递参数,则该方法不执行任何操作。如果给它传递一个参数,则该方法仅执行删除操作,参数值指定删除元素的起始下标,(包含该下标元素),splice() 方法将删除后面所有元素。
    如果指定两个参数,则第 2 个参数值表示要删除元素的个数。
    如果指定三个或多个参数,则第 3 个以及后面所有参数都被视为插入的元素。
    如果不执行删除操作,第 2 个参数值应该设置为 0,但是不能够空缺,否则该方法无效。

2)splice()方法的删除和插入操作是同时进行的,且是在原数组基础上执行操作。插入的元素将填充被删除元素的位置,并根据插入元素个数适当调整插入点位置。而不是在删除数组之后重新计算插入点的位置。

  1. 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,说明是一个空数组

  2. 当第 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]

  3. 参数取负值问题。如果第 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() 截取数组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() 方法了。

JS截取数组:使用splice()和slice()方法相关推荐

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

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

  2. (基础)JavaScript截取数组:使用splice()和slice()方法

    JS 截取数组(得到数组片段)的方法有两种,分别是使用 splice() 和 slice() 方法,简单说明如下 使用 splice() 截取数组 splice() 方法可以添加元素.删除元素,也可以 ...

  3. js数组的增删改查方法、js截取数组方法

    增加的方法: 1.push()方法向数组中末尾添加一个元素,原数组改变. 2.unshift()方法向数组中开始元素添加一个元素,原数组改变. 3.splice()方法:可以添加.删除元素.也可以截取 ...

  4. js截取数组的操作 - Kaiqisan

    js截取数组的操作 hey みんなさんこんにちはKaiqisanと申します.一つの学生プログラマーである-,今天来讲一下截取数组的操作.由于我在项目的实践中总是会用到这个方法但是经常会忘记这些方法的时 ...

  5. 前端:JS实现数组去重常用的六种方法介绍

    今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...

  6. js截取数组slice() 和 splice() 的用法

    一句话先提前概括: slice(start,end) 从哪到哪开始 splice(strt,end,index1,index2) 从什么位置开始,删几个?删了后插入什么新元素? 注意:slice() ...

  7. 【js】数组的splice方法和slice方法的区别

    1.splice方法和slice都是数组的方法 2.splice方法有3种作用 例如,arr=[1,2,3,4,5,6]; splice方法 删除  arr.splice(1, 1); 返回值为删除的 ...

  8. (1)js数组常用方法 splice()、slice()、push()、unshift()、pop()、shift()、join()、reverse()、sort()、concat()、split()

    splice() 方法向数组中添加,删除 元素,然后返回被删除的元素:会改变原数组. var arr = [1,2,3,4,5,6,7,8,9,10]; var arr1 = arr.splice(0 ...

  9. js中splice和slice方法的用法和区别

    1. splice 定义 splice方法向数组中添加项目或删除项目,并返回删除的项目 splice方法会改变原始数组. 语法 array.splice(index, howmany, item1,. ...

最新文章

  1. Windows页目录自映射方案
  2. 第八次课作业(采购管理、信息与配置管理)
  3. 大数据、AI“武装”企业服务:风控、检索、安全
  4. svn 合并和树冲突
  5. IDEA云行项目提示Error: java: OutOfMemoryError
  6. Firebug Command Line 的使用技巧
  7. 年年传、年年鸽!iPhone “神机”又被曝光了,明年年初亮相?
  8. 双11小米手机、AIoT销售成绩公布,雷军笑了
  9. Mysql学习总结(67)——MYSQL慢查询日志
  10. 状态码301和302的区别?
  11. 用户模式同步之信号量小解
  12. 加载图片时报错,请大虾帮忙看看!
  13. java的datatype_java基本数据类型--Basic Datatypes
  14. 百度地图API学习之路(1)
  15. smb协议讲解_SMB/CIFS协议解析(一)
  16. 身份证校验规则Js代码
  17. 分子动力学模拟计算新冠病毒S蛋白和抗体结合自由能
  18. 使用Clip Converter网站下载Yotube视频
  19. 十五年学不会英语的原因
  20. [白话解析] 深入浅出支持向量机(SVM)之核函数

热门文章

  1. webug4.0通关
  2. Android.Settings类设置默认输入法
  3. OSChina 周一乱弹 —— 人生,一场漂泊
  4. 最新一键安装jumpserver
  5. Android 逆向分析
  6. 中层管理人员应具备的素质
  7. 渗透实战-通过fofa+rad+xray批量挖掘src
  8. js循环发起ajax请求
  9. 用MobileVLCKit播放rmvb视频
  10. 测试用例八大要素以及设计方法