对于数组(字符串)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用法相似。

时间: 2024-08-05 07:07:13

对于数组(字符串)slice方法的总结的相关文章

浅谈用原生 js 实现数组的 slice 方法

slice 方法有这几种情况:不传参.传一个参数.传两个参数.并且传参支持负数,具体每个情况的效果在这里就不说了. 核心方法:通过 for 循环遍历 调用此方法的数组 ,把要取出的内容放入新数组,然后将新数组返回. 一切的条件处理判断,都为了 for 循环能够正确的执行 这是好久以前写的了,虽然就8行代码,但是三元运算符套用的太多了,还没加括号,现在回过头来看看真是满眼的星星. Array.prototype._slice = function _slice() { var n1 = Numbe

数组的slice方法

1.语法 arr.slice(begin,end); 2.说明 begin起始位置,选中元素不包括.若未填写,则从0开始. end结束位置,包括最后一个.若未填写,则直到最后一个. 3.使用 返回结果为一个新数组,对原数组不做改变. 类数组slice方法的使用. Array.prototype.slice.call(arguments); [].slice.call(arguments);

IE8及以下浏览器伪数组slice方法兼容处理

前几天同事说数组的slice方法在IE8下有兼容问题,我查阅了MDN,文档里面有提到IE8及以下浏览器中,DOM对象组成的伪数组通过call调用slice方法没有遵循标准行为 我做了个demo在IE8上做了测试 <div>古</div> <div>德</div> <div>God</div> <script> var dom = document.getElementsByTagName("div");

javascript中数组常用的方法

在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. 运行[] instanceof Array他会返回ture.虽然结果是这样,但也有复杂的类数组对象,如字符串或arguments对象,但arguments对象并非是Array的实例,但他却拥有length属性,而且他的值是可以被索引的,因此他可以像一个数组那样被遍历. 这本文中,我将介绍数组原型的一

Javascript数组Array的方法总结!

1.join() 将数组的元素组成一个字符串,以分隔符连接,如果省略则默认逗号为分隔符,该方法只接收一个参数:分隔符.此方法不会改变原数组. let arr = [1,2,3,4] let arr1 = arr.join(); let arr2 = arr.join('-'); console.log(arr1);//1,2,3,4 console.log(arr2);//1-2-3-4 console.log(arr);//(4) [1, 2, 3, 4] 2.push() 可以添加任意数量的

jQuery 遍历 - slice() 方法

今天项目中遇到要获取前几个和最后几个元素,查了资料发现了这个slice()方法很实用,废了一番功夫终于明白怎么用的了.slice(start[,end]):start类型:Integer 开始选取子集的位置.第一个元素是0.如果是负数,则可以从集合的尾部开始选起. end (可选)类型:Integer 结束选取自己的位置,如果不指定,则就是本身的结尾. 如果提供的jQuery代表了一组DOM元素,slice()方法从匹配元素的子集中构造一个新的jQuery对象.所提供的start索引标识的设置一

javascript中数组和字符串的方法比较

前面的话 字符串和数组有很多的相同之处,它们的方法众多,且相似度很高:但它们又有不同之处,字符串是不可变值,于是可以把其看作只读的数组.本文将对字符串和数组的类似方法进行比较 可索引 ECMAScript5定义了一种访问字符的方法,使用方括号加数字索引来访问字符串中的特定字符 可索引的字符串的最大的好处就是简单,用方括号代替了charAt()调用,这样更加简洁.可读并且可能更高效.不仅如此,字符串的行为类似于数组的事实使得通用的数组方法可以应用到字符串上 如果参数超出范围或是NaN时,则输出un

从js的repeat方法谈js字符串与数组的扩展方法

js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { return (new Array(n + 1)).join(target); } //版本2:之所以要创建一个带length属性的对象 是因为要调用数据的原型方法,需要指定call的第一个参数为类数组对象 //类数组对象的必要条件是其length属性的值为非负数 function repeat(t

JavaScript中字符串截取substring/substr/slice方法总结

最近整前台总多多少少遇到一些字符串截取的小问题,忍不住仔细看了下.接下来总结一下javascript中字符串截取方法的一些应用经验和区别.看了其他博主也有写到,各有风格况且只是个人随记,自己体会的才最深刻. 一些看似简单深究又大有文章的东西弄懂了你才知道自己所学甚浅,部分内容是w3cSchool原文,然后增加了自己的总结和见解.看完有兴趣的也可以去官网查看. 以下为总结: var str = "0123456789"; //此字符串为上下文举例用 一.stringObject.subs