JavaScript中数组slice和splice的对比小结

来源:互联网 发布:社交软件的英语 编辑:程序博客网 时间:2024/05/22 09:51

slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变.
根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。

'abc'.slice(1,2)   // "b"[14, 3, 77].slice(1, 2) // [3]

需要特别注意的是它并不会修改原数组。

下面的代码段描述了这个行为,x 的值没有变,y 则是被截取的部分。

var x = [14, 3, 77];var y = x.slice(1, 2);console.log(x);   // [14, 3, 77]console.log(y);   // [3]

除此之外,splice 还会改变原数组。

push(末尾添加元素) pop(删除并返回数组的最后一个元素) unshift(开头添加元素,并返回新长度)
shift(删除并返回数组的第一个元素)
可见添加元素则返回添加后长度, 删除元素则返回被删的那个元素。

修改自身的有: splice, pop, push, shift, unshift, sort, reverse
不修改自身的: slice, concat, join

 splice删除:color.splice(1,2) (删除color中的1、2两项); splice插入:color.splice(1,0,'brown','pink') (在color键值为1的元素前插入两个值); splice替换:color.splice(1,2,'brown','pink')  (在color中替换1、2元素); var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1);  //删除第一项alert(colors);  //green,bluealert(removed);  //red,返回数组中值包含一项removed = colors.splice(1, 0, "yellow", "orange");  //从位置1开始插入两项alert(colors);  //green,yellow,organge,bluealert(removed);  //返回的是一个空数组removed = colors.splice(1, 1, "red", "purple");  //插入两项,删除一项alert(colors);  //green,red,purple,orange,bluealert(remove);  //yellow, 返回的数组中只包含一项
0 0
原创粉丝点击