Javascript 中的slice和splice
总:
1.slice方法可以截取一个数组中的片段 支持从头开始截取,或者从末端开始截取,一个参数代表从这个元素一直到末尾。slice方法正如它的字母个数,要比splice少。功能也相应较少。
2.splice方法功能较为强大,可以截取,删除,替换。splice会修改原来数组的值,而slice方法不会修改原来的值。
1.slice
首先这个方法是定义在Array数组对象的原型上的,slice返回一个新的数组对象,原来的数组值不会改变。
1.1一个参数
const a =[1,2,3,4,5,6,7]
var c=a.slice(2)//左闭右开
console.log(c)
slice 2 就是从第三个元素一直到最后一个元素截取出来返回一个新数组 [3 4 5 6 7]
1.2两个参数
const a =[1,2,3,4,5,6,7]
var c=a.slice(2,4)//左闭右开
console.log(c)
返回 3 4 怎么得到 ? 原理是截取第三个到第五个元素 左闭 右开(左边取,右边不取)。我们也可以这么计算 4-2=2 ,从第三个元素开始截取2个元素,也可以得到3和4。
const a =[1,2,3,4,5,6,7]
var c=a.slice(-4,-1)//左闭右开
console.log(c)
为负数,那么先要做减法,总共7个元素 slice(7-4,7-1) ====slicce(3,6),从第四个开始截取3个 ,便得到结果4,5,6。
2.splice方法
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
2.1删除
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
splice方法因为做的事是删除替换,所以第一个参数为第几个值,第一个后面删除0 个
案例2 第四个后面删除1 个 把june删除掉
2.2替换
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
替换:第三个参数的值是替换的值,将xxx插入到数组中,如果第二个参数为0 ,那么则为数组插入一个值。