splice()和slice()
Hello,everybody~
今天来个小细节的东西,js大家都不陌生了,不知道对js数组对象的几个方法还有没有印象,今天就来深入分析一下~
数组对象中有两个比较相似的方法——splice和splice,看着很像,就是多了一个p,但是用法却相当不一样。
1、splice()
定义
用于插入、删除或替换数组的元素,返回被删除的项目。
语法
arrayObject.splice(index,howmany,element1,......,elementX)
参数
3个参数 2个必需 1个可选
① index:必需。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。整数,规定添加或删除项目的位置,使用负数,可以从数组结尾处规定位置。
② howmany:必需。要删除的数量,规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
③ 第3个参数可选 在参数1的位置处,增加一个或多个项目。返回值是删除的元素。
element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
elementX 可选。可向数组添加若干元素。
返回值
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
splice() 方法会直接对数组进行修改。
写个小案例:
var color = new Array('red','blue','yellow','black');
var color2 = color.splice(2,3,'brown','pink');
alert(color); // 输出 red,blue,brown,pink
alert(color2); // 输出 yellow,black
扩展
splice()方法还可以用到数组去重中 代码如下:
2、slice()
定义
slice() 方法可截取字符串的某个部分,并以新的字符串返回被提取的部分。
语法
stringObject.slice(start,end)
参数
start:要抽取的片断的起始下标。
如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。
也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end:紧接着要抽取的片段的结尾的下标。
若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。
如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
返回值
一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
说明
String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。
还要注意的是,String.slice() 与 Array.slice() 相似。
来看个小案例:
var color = new Array('red','blue','yellow','black');
var color2 = color.slice(1,2);
alert(color); //输出 red,blue,yellow,black
alert(color2); //输出 blue;注意:这里只有第二项一个值
写到这,大家应该都能回忆出来数组对象的很多方法了,今天写的是写法很相像的两个方法,以后还会多多总结,未完待续......