Splice 和 Slice 的区别

2016-07-11 Oliver Wang 更多博文 » 博客 » GitHub »

splice slice js

原文链接 http://ochukai.me/ths-difference-between-splice-and-slice/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


之前写过一遍介绍 splice() 方法的,这一次又遇到了 slice(), 这两个太像了, 首先看这两个意思吧:

splice [splais] n. 接合;结婚 vt. 拼接;接合;使结婚

slice [slais] n. 薄片;部分;菜刀,火铲 vt. 切下;把…分成部分;将…切成薄片 vi. 切开;割破

区别

slice() 方法可从已有的数组中返回选定的元素。这个函数有两个参数 slice(start, end) 会返回一个从 startend 之前元素的新数组, 如果 end负数,就从数组末尾倒着数, 如果 end 没有设置,就返回从 start 到数组末尾组成的新数组咯~

总之这是一个返回新数组的函数,知识返回而已,不会改变原来的数组,而 splice 方法则会改变原来的数组.

例子

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

console.log(arr.slice(4)) // ["Adrew", "Martin"] == arr.slice(4, 6)
console.log(arr.slice(0, -4)) // ["George", "John"] == arr.slice(0, 2)