let str = 'abcde'
str = str.split('').splice(1,2).join('')
//没有得到预期的结果:ade,而是得到:bc
console.log(str)
说明:因为单独用 splice(1,2)是直接修改,删除数组元素,但它返回值是删除的元素,
str.split('').splice(1,2).join('')
将返回值(删除的元素)做 join
运算 并将结果返回给了 str,所以 str 不是预期的 结果: ade
正确的写法如下:
let str = "sldkjflseflwseflwkefwef"
const arr = str.split('')
arr.splice(1, 1)
str = arr.join('')
console.log(str)
splice 方法说明:
- 删除数组元素
array.splice(开始位置,结束位置) - 截取数组元素
arr = array.splice(开始位置,截取元素连续个数) - 向数组中插入元素
array.splice(插入位置, 0, 插入元素) - 替换数组元素
array.splice(替换的元素开始位置, 被替换元素连续个数, 替换的新的元素)