JS服务器端开发基础篇(Array.slice方法和splice方法)

Array.slice方法和splice方法在众多的JS数组中属于比较复杂的一个方法,而且容易记混。搜索网络上很多资料都没有发现系统的总结。特别归纳如下,不完全处还希望各位批评指正。

 一、slice方法

格式:

arrayObj.slice(start, [end])

功能:返回指定数组的一个子数组,并不修改原来数组

参数:

start:必需。arrayObj的指定部分的开头。

end:可选。arrayObj的指定部分的结尾。

 

数组使用来看,这个方法类似于串操作中的substr函数。但是,当参数为负数时,情况就复杂了。

具体情况详见下面的代码示例:

var a1=[1,3,5,7,9];

var n1=a1.slice(0); //n1=>[1,3,5,7,9]效果与a1.slice(0,5)一样

var n1=a1.slice(1); //n1=>[3,5,7,9]

var m1=a1.slice(0,2);  //m1=>[3,5]2代表截取子串的长度

var m1=a1.slice(0,5); //m1=>[1,3,5,7,9]5代表截取子串的长度

var m1=a1.slice(0,15); //m1=>[1,3,5,7,9]15大于最大长度,不再起作用

var m1=a1.slice(0,-1); // m1=>[1,3,5,7]

var m1=a1.slice(0,-2); // m1=>[1,3,5]

var m1=a1.slice(0,-5); // m1=>[]

var m1=a1.slice(0,-15); // m1=>[]

var n2=a1.slice(-1); //n2=>[9]

var n3=a1.slice(-2); //n3=>[7,9]

var nx=a1.slice(-5); // nx=>[1,3,5,7,9]

var ny=a1.slice(-10); // ny=>[1,3,5,7,9]

 [1,2,3,4,5,6,7,8,9].slice(-5); //=>[5,6,7,8,9]

[1,2,3,4,5,6,7,8,9].slice(-5,-1); //=>[5,6,7,8]

[1,2,3,4,5,6,7,8,9].slice(-5,-3); //=>[5,6]

[1,2,3,4,5,6,7,8,9].slice(-5,-10);  //=>[]

[1,2,3,4,5,6,7,8,9].slice(-5,0); //=>[]

[1,2,3,4,5,6,7,8,9].slice(-5,1); //=>[]

上述代码片断已经概括了slice方法的所有使用情形,总结如下:

1)如果start>=0

               ①    当没有参数end时,从原数组中返回从索引号start开始直到最后元素的子数组。

               ②    当参数end>=0时,从原数组中返回从索引号start开始的end个元素的子数组。此时,如果end>数组最大长度,则返回length个元素组成的子数组。

2)如果start<0

              ①    当没有参数end时,从原数组尾部截取|start|个元素组成的子数组。此时,如果|start|>数组最大长度,则返回length个元素组成的子数组。

              ②    当参数end<0,则从没有参数end时取得的子串,例如sub1,尾部截去|end|个元素。此时,当|end|>sub1.length,返回空子数组。

              ③    当参数end>=0,返回空子数组。

二、splice方法

格式:

       arrayObject.splice(index,howmany,item1,.....,itemX)

  功能:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。      
       整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
       要删除的项目数量。如果设置为 0,则不会删除项目。
       
       :  Array  包含被删除项目的新数组,如果有的话。
        :   splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
                    如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

具体情况详见下面的代码示例:

        var arr=[1,2,3,4,5,6]; 
        var arr2=arr.splice(2,4); 
        console.log("arr2=",arr2,",arr=",arr);    //arr2= [3, 4, 5, 6] ,arr= [1, 2]




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值