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

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

 

格式:

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,返回空子数组。

 

本文出自 “青峰” 博客,请务必保留此出处http://zhuxianzhong.blog.51cto.com/157061/1651258

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。