首页 > 代码库 > 对于数组(字符串)slice方法的总结

对于数组(字符串)slice方法的总结

数组(字符串)使用slice方法的目的就是截取目标数组(字符串),通俗的来讲就是截取想要的。网上有很多slice方法的实例加以说明,在此主要是从特殊到一般对此方法进行了总结。

先说总结的方法,再看下面的例子进行理解。

假设已知一个数组长度为len,则参数的有效范围为[-len,len-1],-len和0为第一个元素的下标,-1和len-1表示最后一个元素的下标。slice()总共有两个参数,不填参数返回所有元素;若只填一个参数x,则x为起始元素的下标(起始元素一定会被截取),返回x之后的所有元素为新的数组(包括x),若x>=len,则返回空数组,即什么也没截取;若x<=-len||x=0,则截取全部;若填写两个参数x,y(x为起始元素下标值,y为结束元素下标值。注:不截取下标为y的元素);先列出能截取到元素的取值情况(有效范围内):x,y同号时(此处把0归为正),x<y;x,y异号时,x为正,y为负,则|x|+|y|<len;x为负,y为正,则|x|+|y|>len;有效范围外,x<len,y>-len。

以上包括所有情况,总的原则就是保证下标为y的元素要在x的后面才可截取。看下面例子加强理解

1、不填参数

1 var arr = new Array("a","b","c","d");
2 console.log(arr.slice());//["a","b","c","d"]相当于截取全部

2、一个参数

1 var arr = new Array("a","b","c","d");
2 console.log(arr.slice(2));//["c","d"];
3 console.log(arr.slice(-2));//["c","d"];
4 console.log(arr.slice(-5));//["a","b","c","d"]超出范围
5 console.log(arr.slice(5));//[]超出范围

3、两个参数

1 var arr = new Array("a","b","c","d");//len = 4 有效[-4,3]
2 console.log(arr.slice(1,3));//["b","c"]包括b不包括d x<y
3 console.log(arr.slice(-3,-2));//["b"] x<y
4 console.log(arr.slice(0,-2));//["a","b"] |x|+|y|<4
5 console.log(arr.slice(-3,2));//["b"] |x|+|y|>4
6 console.log(arr.slice(4,2));//[] x>4 一定为空
7 console.log(arr.slice(-3,0));//[] y=0 一定为空
8 console.log(arr.slice(-3,-4));//[] y<=-4 一定为空
9 console.log(arr.slice(1,100));//["b","c","d"]y>len-1能取到最后一个元素

字符串与数组slice用法相似。

 

对于数组(字符串)slice方法的总结