在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不会对原数组进行修改