splice和slice、substr、substring

349 阅读2分钟

splice : 向数组中添加(3个参数)或删除(2个参数)或替换(3个参数)数据,返回被删除的项目。该方法会改变原数组 push unshift pop shift都会影响原数组
array.splice(index,homeany,item1)有三个参数,

删除: array.splice(index,number) 起始位置、要删除的项数 第一个参数:必需,规定添加或删除或替换的位置,表示从索引为几的地方删除。
第二个参数:非必需,表示删除的数量。如果设置为0,表示不删除。

image.png

image.png

添加: array.splice(index,number,eachItem) 起始位置、要删除的项数、插入的项(数量不限,可以插入多个),从起始索引的前面开始添加。返回添加后的整体数组

替换: 可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。 返回替换后的整体数组

删除: 返回被删除的元素组成的数组

image.png

image.png

一、 slice :截取字符串 ----- 不改变原数组

从已有数组或者字符串中返回选定的元素,两个参数分别表示截取的开始下标结束下标,包前不包后。

image.png

没有第二个参数的话,返回从起始位置开始到数组末尾的项。 返回被截取的内容

当slice()不带任何参数的时候,默认返回一个长度和原数组相同的新数组,slice方法不影响原数组,

如果有下标小于0,则从后面开始计数

let b1='12312adas'
b1.slice(-3,7) // 'd'
b1.slice(-3,-1) // 'da'

二、 substring : 截取字符串 ----- 不改变原数组

截取字符串,两个参数分别表示开始下标结束下标,包前不包后 。如果结束下标比开始下标大,该方法会在截取之前交换两个参数。开始下标不能为负返回被截取的元素

如果有下标小于0,按0处理

let a1 = 'fsfdsdg1423' a1.substring(-3,3) // 'fsf' a1.substring(-2,-4) // '' a1.substring(0,0) // ''

三、 substr : 截取字符串 ----- 不改变原数组

截取字符串,两个参数分别表示开始下标要截取的长度开始下标可以为负,如果是负数,则从字符串的尾部开始算起。比如是-1,则从末尾开始截取,如果是-2,则从倒数第二个字符截取,以此类推。 如果没有长度这个参数,则截取到字符串最后。 返回被截取的元素

image.png

image.png

image.png

image.png

第一个参数是负数的情况

image.png

上述案例表示从字符串倒数第四位开始截取,截取2位