splice和slice方法的区别

splice()和slice()都是js数组的方法,很多人会把这两个api给弄混了。

splice和slice最大的区别是,splice会改变原数组,而slice不会。

splice()方法还是非常强大的,用于在数组中添加、删除或替换元素。

上例子:

let cities = ['北', '上', '广']
// 删除元素
cities.splice(1, 1) // 删除'上'
console.log(cities) // ['北', '广']
let cities = ['北', '上', '广']
// 添加元素
cities.splice(2, 0, '深') // 在索引2处添加'深'
console.log(cities) // ['北', '上', '深', '广']
let cities = ['北', '上', '广']
// 替换元素
cities.splice(2, 1, '深')
console.log(cities) // ['北', '上', '深']

再来看slice(),slice()方法用于提取原数组的一部分,它会return一个新数组。也就是说,原数组不会被修改。

上例子:

let cities = ['北', '上', '广', '深']
//提取元素
let newCities = cities.slice(1, 3)
console.log(newCities) // ['上', '广']

slice()里面其实是可以只写一个数字的,这样可以产生一个效果:从这个数字对应的索引一直取到最后:

let cities = ['北', '上', '广', '深']
//提取直到数组末尾的元素
let newCities = cities.slice(1)
console.log(newCities) // ['上', '广', '深']