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) // ['上', '广', '深']