1.array.slice(start,end)
用法与string.slice()类似
不改变原数组
return:截取的新数组
param:两个参数都是索引;两个参数都可以是负数,负数-n表示从尾部向前数第n个字符
2.array.splice(index, deleteCount, replaceEle )
删除、增加或者替换数组中某几项
该方法会改变原始数组,与slice区别是直接改变原数组
return: 被替换的元素组成的新数组
param: index开始替换的索引;deleteCount被替换的元素个数;replaceEle替换上去的元素
1)主要语法
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 替换2-5为10 11
arr.splice(1, 4, 10, 11) // [2, 3, 4, 5]
console.log(arr) // [1, 10, 11, 6, 7, 8, 9]
// 无replaceEle参数时即为删除
// 删除2-5
arr.splice(1, 4) // [2, 3, 4, 5]
console.log(arr) // [1, 6, 7, 8, 9]
// deleteCount为0即为添加
// 注意:是在索引1前添加10
arr.splice(1, 0, 10) // []
console.log(arr) // [1, 10, 2, 3, 4, 5, 6, 7, 8, 9]
// index为负数表示从尾部开始计算
// 删除尾部3项
arr.splice(-3) // [7, 8, 9]
console.log(arr) // [1, 2, 3, 4, 5, 6]
与数组其他增删方法对比:
用于数组头部或者尾部添加元素时,和unshift()、push()方法相似(返回值不同,unshift()、push()返回操作之后的数组的length),用于从头部或者尾部删除元素时,shift()和pop()只能一次删除一项,splice()可同时删除多项,shift()和pop()以字符串格式返回删除的元素。