对于数组(字符串)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、不填参数
var arr = new Array("a","b","c","d");
console.log(arr.slice());//["a","b","c","d"]相当于截取全部
2、一个参数
var arr = new Array("a","b","c","d");
console.log(arr.slice(2));//["c","d"];
console.log(arr.slice(-2));//["c","d"];
console.log(arr.slice(-5));//["a","b","c","d"]超出范围
console.log(arr.slice(5));//[]超出范围
3、两个参数
var arr = new Array("a","b","c","d");//len = 4 有效[-4,3]
console.log(arr.slice(1,3));//["b","c"]包括b不包括d x<y
console.log(arr.slice(-3,-2));//["b"] x<y
console.log(arr.slice(0,-2));//["a","b"] |x|+|y|<4
console.log(arr.slice(-3,2));//["b"] |x|+|y|>4
console.log(arr.slice(4,2));//[] x>4 一定为空
console.log(arr.slice(-3,0));//[] y=0 一定为空
console.log(arr.slice(-3,-4));//[] y<=-4 一定为空
console.log(arr.slice(1,100));//["b","c","d"]y>len-1能取到最后一个元素
字符串与数组slice用法相似。
对于数组(字符串)slice方法的总结的更多相关文章
- 继承数组的slice方法
<script> var arr=[1,2,3,4,5]; console.log(Array.prototype.slice.call(arr,1)); </script> ...
- 数组/字符串/ Math / 方法示例
数组 Array concat 数组的合并 <script> var north = ["北京","上海","深圳"]; va ...
- slice方法可以将“类似数组的对象”变成真正的数组 (遇到时候再研究一次)
典型的“类似数组的对象”是函数的arguments对象,以及大多数 DOM 元素集,还有字符串. // arguments对象 function args() { return arguments } ...
- slice splice(数组) 和 slice substr substring split (字符串)的区别
array.slice(start,end)slice()如果不传入参数二,那么将从参数一的索引位置开始截取,一直到数组尾如果两个参数中的任何一个是负数,array.length会和它们相加 stri ...
- IE8及以下浏览器伪数组slice方法兼容处理
前几天同事说数组的slice方法在IE8下有兼容问题,我查阅了MDN,文档里面有提到IE8及以下浏览器中,DOM对象组成的伪数组通过call调用slice方法没有遵循标准行为 我做了个demo在IE8 ...
- javascript中数组常用的方法
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...
- Javascript数组Array的方法总结!
1.join() 将数组的元素组成一个字符串,以分隔符连接,如果省略则默认逗号为分隔符,该方法只接收一个参数:分隔符.此方法不会改变原数组. let arr = [1,2,3,4] let arr1 ...
- JavaScript splice() 、slice() 方法
定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. slice() 方法可从已有的数组中返回选定的元素. 注释:该方法会改变原始数组. 语法 arrayObject. ...
- Jsの练习-数组常用方法 -slice()
slice() 返回从原数组指定开始下标到结束下标之间的项组成的新数组. slice()方法可以接收一个或两个参数,即要返回项的起始和结束位置. 在只有一个参数的情况下,slice()方法返回从该参数 ...
随机推荐
- 阿里druid 介绍及配置
1. 简介,什么是Druid Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器组成.该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如 ...
- ccf集合竞价
我不懂为什么是错误.然后零分.贴出测试. 然后即使注释掉while循环中的break部分,也是如此. #include<iostream> #include<iomanip> ...
- Extjs 4学习2
主要学习采自:http://www.ishowshao.com/blog/2012/06/19/extjs-4-getting-started/ 用的sdk为extjs4.2.1 根据其中的提示装了一 ...
- JSP中用include标签动态引入其它文件报错
<jsp:include page="<%=path %>/include.jsp"></jsp:include> 报错:attribute f ...
- asp.net在应用母版的页面下采用了ModalPopupExtender弹出窗中应用autocomplete
autocomplete是jqueryUI的一个插件,可以实现自动填充的功能. 要点:1.应用了母版页,所以取页面上控件的ID时与一般方法不同 2.由于用了ajax的updatepanel,所以会出现 ...
- dedecms自定义表单提交成功如何返回当前页面
在plus/diy.php找到showmsg($bkmsg, $goto);改成showmsg($bkmsg, -1);
- linux 和 ubuntu 修改主机名
原始主机名:jeepend-VirtualBox linux 修改方法: 1.使用secure CRT或其他方式 用root用户 登入系统.2.在终端输入: #hostname [修改后的主机名]3. ...
- Android常用的颜色列表 color.xml
转自:http://blog.csdn.net/libaineu2004/article/details/41548313 <?xml version="1.0" encod ...
- 总结iOS 8和Xcode 6的各种坑
模拟器的路径从之前的~/Library/Application Support/iPhone Simulator移动到了~/Library/Developer/CoreSimulator/Device ...
- c#分支语句;循环语句(随堂练习)
1. 输入月份,日期号,输出是今年的第几天 平年,2月28天 switch (变量名) {case "": break} 2. 循环语句: for(int i ...