splice与slice

在js里,数组有两个函数:splice和slice

splice是一个功能强大的函数,不仅能实现数组元素的添加,还能实现数组元素的替换和删除

语法:

Array.prototype.splice(start,deleteCount[,item1[,item2[,...]]])

上面是mdn的定义,splice至少含有两个参数,

  如果只有两个参数,则代表删除元素,start为起始位置,deleteCount为删除元素的个数

  如果多于两个参数,

    如果deleteCount为0,则代表添加元素

    如果deleteCount不为0,则代表替换元素,实际上是先删除后添加元素

测试一下:

//两个参数的情况
var a = [1,2,3];
a.splice(1,1);
console.log(a);  //1,3

//三个参数且第二个参数为0
var b = [1,2,3];
b.splice(1,0,4,5,6);
console.log(b);  //1,4,5,6,2,3

//三个参数且第二个参数不为0
var c = [1,2,3];
c.splice(1,2,4,5,6);
console.log(c);  //1,4,5,6

要注意的一点是,splice会对原数组进行修改

再来看一下slice

Array.prototype.slice([start[,end]])

两个参数都可以省略

start:索引开始的位置(包含),如果省略,则从0开始

end:索引结束的位置(不包含),如果省略,则一直提取到数组结尾

测试一下:

//没有参数
var a = [1,2,3];
var b = a.slice();
console.log(b);  //1,2,3

//一个参数
var c = [1,2,3];
var d = a.slice(1);
console.log(d);  //2,3

//两个参数
var e = [1,2,3];
var f = e.slice(1,1);
console.log(f);  // []

//两个参数
var g = [1,2,3];
var h = g.slice(1,2);
console.log(h);  //  2

注意,slice不会对原数组进行修改

原文地址:https://www.cnblogs.com/just4play/p/5681441.html