- 功能上的区别:slice是数组切片,splice是数组剪接
- slice是纯函数,splice不是纯函数
1. slice 用法
const arr = [10, 20, 30, 40, 50]
// slice中不传参数,直接复制数组
const arr1 = arr.slice()
console.log(arr1) // [10, 20, 30, 40, 50]
// slice中可以传入两个参数,slice(start_index, end_index),注意:切出来的数组不包含end_inedx
const arr2 = arr.slice(1, 4)
console.log(arr2) // [20, 30, 40]
// slice中只传入一个参数,那么新数组元素 从strat_index开始一直到最后一个元素
const arr3 = arr.slice(2)
console.log(arr3) // [30, 40, 50]
// 从最后一个元素开始截取
const arr4 = arr.slice(-2)
console.log(arr4) // [40, 50]
2. splice 用法
splice(a, b, x1, x2, ...)
。第一个参数是开始剪元素的索引,第二个参数是剪多少个元素,之后的参数是把剪出来的元素进行替换的元素。返回结果是剪出来的元素,并且会对原来的数组进行修改。
const arr = [10, 20, 30, 40, 50]
const spliceRes = arr.splice(1, 2, 'a', 'b', 'c')
console.log(spliceRes) // 剪出来的结果
console.log(arr) // 剪接后的原数组
3. 数组的 map
map
的返回值是一个数组,map参数是一个函数,函数中又包含两个参数item
和index
,map((item, index)=>{})
const res = [10, 20, 30].map(parseInt)
console.log(res)
上述代码等价于
[10, 20, 30].map((item, index)=>{
return parseInt(item, index)
})
执行结果: