浅谈javaScript中slice和splice之间的区别和联系

浅谈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>
输出:

happy
splice():方法

从数组中添加/删除项目,然后返回被删除的项目。注释:该方法会改变原始数组。

参数:

   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,Martin
George,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,Martin
George,John,William,James,Adrew,Martin
3、 将删除从 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,Martin
George,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值