浅谈javaScript中slice和splice之间的区别和联系
来源:互联网 发布:ios矩阵潜袭 编辑:程序博客网 时间:2024/05/02 01:39
浅谈JavaScript中slice和splice之间的联系和区别
今天重温了JavaScript,看到了数组的方法,其中有两个比较相似的方法——splice和splice,它们看着很像,用法确实不一样。
slice():slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变数组的 slice (ECMAScript 5.1 标准 15.4.4.10 节)非常类似于字符串的 slice。根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。
splice():splice是JS中数组功能最强大的方法,它能够实现对数组元素的删除、插入、替换操作,返回值为被操作的值。
slice():
两个参数:1:start 必需 要抽取的片段的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1指字符串的最后一个字符,-2指倒数第二个字符,以此类推。
2:end 可选 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的字符串包括start到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
它的返回值是一个新的字符串。包括字符串stringObject从start开始(包括start)到end结束(不包括end)为止的所有的字符。
用法:slice( para1 ),会截取从para1开始的到原数组最后的部分;
slice(para1,para2)会截取原数组的从para1开始的para2-para1个数组。
注意:当两个参数中存在负数时,用原数组的长度加上两个负数的参数作为相应的参数来计算。
例子 1:
将提取从位置 6 开始的所有字符:
<script type="text/javascript">var str="Hello happy world!"document.write(str.slice(6))</script>输出:
happy world!将提取从位置 6 到位置 11 的所有字符:
<script type="text/javascript">var str="Hello happy world!"document.write(str.slice(6,11))</script>输出:
happysplice():方法
从数组中添加/删除项目,然后返回被删除的项目。注释:该方法会改变原始数组。
参数:
1、index: 必需。整数,规定添加/删除项目的的位置,使用负数可从数组结尾处规定位置。
2、howmany 必需。要删除的项目数量。如果设置为0,则不会删除项目。
3、item1...itemX 可选。向数组中添加的新的项目。
返回值:array 如果有的话,包含被删除项目的新数组。
说明:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
注释:splice()方法与slice()方法的作用是不同的,splice()方法会直接对数组进行修改。
案例:
1、创建一个新的数组,并向其添加一个元素:
<script type="text/javascript">var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />")arr.splice(2,0,"William")document.write(arr + "<br />")</script>输出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,Thomas,James,Adrew,Martin
2、将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:
<script type="text/javascript">var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />")arr.splice(2,1,"William")document.write(arr)</script>
输出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,James,Adrew,Martin3、将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素:
<script type="text/javascript">var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />")arr.splice(2,3,"William")document.write(arr)</script>输出:
George,John,Thomas,James,Adrew,MartinGeorge,John,William,Martin二者的区别:
定义:
splice() 方法 用于插入、删除或替换数组的元素。
slice() 方法 可提取字符串的某个部分,并以新的字符串返回被提取的部分。
用法:
splice 的参数 :splice (start, deleteCount, [item1[, item2[, . . . [,itemN]]]]),
数组从 start下标开始,删除deleteCount 个元素,并且可以在这个位置开始添加 n个元素,
当start ,deleteCount 均为0 的时候,也就是在数组的最前面插入新的元素。
当 参数只有 start,deleteCount 就是从start 下标开始删除deleteCount 个数组的元素,
当参数只有start参数时,就是删除 从start下标起至最后 的元素
当参数 为负的时 则该参数规定的是从数组元素的尾部开始算起的位置 (-1 指的是 数组中倒数第一个元素, -2 指的是,数组中倒数第二个元素。)。slice 参数 : slice(start,end);
slice 方法,在string对象和array对象 的用法上类似。
对于数组对象来说,slice 方法提取 从 start下标起 以end下标 为结尾的 一段元素(但不包括end下标的元素),然后返回新的数组,对原数组没有任何是影响,
当参数为负时 则该参数 是从 数组的末尾 索引 开始算起,(-1 指的是 数组中倒数第一个元素, -2 指的是,数组中倒数第二个元素。),
当参数为一个参数,当为一个参数时,提取 是以 start下标起 至末尾的 部分元素。
当start 为0 时, 等于说是 克隆一个新的数组,克隆后 两个数组进行各自的操作,都互不影响,
var clone = array.slice(0);
阅读全文
0 0
- 浅谈javaScript中slice和splice之间的区别和联系
- JavaScript Array.splice()和slice()的区别
- javascript中 slice,splice和split三个函数的区别
- JavaScript中的splice方法和slice方法联系与区别
- 数组中splice和slice的区别
- js中splice和slice的区别
- splice和slice的区别
- slice和splice的区别
- slice()和splice()的区别
- slice和splice的区别
- slice和splice的区别
- javascript中Array的slice和splice方法的比较
- JavaScript中数组slice和splice的对比小结
- JavaScript中数组slice和splice的对比小结
- JS中slice split和splice三者的区别
- javascript 的splice()方法和slice()方法
- JavaScript的slice()和splice()数组方法
- slice,splice,substr和substring的区别
- 嵌入式ROOTFS transplantation
- 人脸识别主要算法原理
- TensorFlow学习笔记(六):如何理解dropout?
- HowTomcatWorks学习笔记--Tomcat的默认连接器(续)
- Zookeeper基础知识和Linux环境下搭建
- 浅谈javaScript中slice和splice之间的区别和联系
- 图片
- JAVA基础知识中INT与String类型的转换
- 光盘yum源搭建
- 插入排序
- hdoj1285 确定比赛名次 topo排序 Kahn算法 (新手向)
- 算法设计作业16
- 每日分享之《破相》
- Metasploit为什么选择Ruby语言(部分)