目录
前言
今天看到一道题说有手就行,随手写了一下,结果一写就尬住了,‘string.splice() is not a funtion’,为了铭记于心,所以来记录一下,防止以后当场打脸。
一、splice
Array.prototype.splice()
splice()
方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。array.splice(start[, deleteCount[, item1[, item2[, ...]]]])start: 开始位置的索引值
deleteCount:要移除的个数
item1, item2, ... : 要添加的元素
const months = ['Jan', 'March', 'April', 'June'];
// 插入一个元素
months.splice(1, 0, 'Feb');
console.log(months);
// 输出 ["Jan", "Feb", "March", "April", "June"]
// 从索引值为4的元素开始,删除一个元素,并添加一个元素
months.splice(4, 1, 'May');
console.log(months);
// 输出 ["Jan", "Feb", "March", "April", "May"]
二、slice
Array.prototype.slice()
slice()
方法返回一个新的数组对象,这一对象是一个由begin
和end
决定的原数组的浅拷贝(包括begin
,不包括end
)。原始数组不会被改变。
String.prototype.slice()
slice()
方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
总结
1. splice只可以操作数组,并且会在原数组的基础上修改
2. slice可以操作数组和字符串,会返回新的子数组或子串
3. 都可以传参为负值