slice()和splice()有什么区别?

冒牌SEO Javascript 165

一、splice()

定义:从数组中添加或删除元素,然后返回被删除的数组元素

语法:arrayObject.splice(index,n,item1,…..,itemN)

1、index表示从什么位置开始添加或删除数组元素

2、n表示删除的元素数量,如果为0,则表示不删除数组元素

3、item1,…..,itemN表示新增的数组元素

4、splice()方法会改变原始shi例

示例

//删除第一项
let arr = [1,3,5,6]
let delArr = arr.splice(0,1)
console.log(arr) // [3,5,6]
console.log(delArr) //[1]
 
//从位置1开始插入2项
let names = ['xiaoming','xiaohong','fangfang']
let newNames = names.splice(1,0,'wukong','bajie')
console.log(names)    // ['xiaoming', 'wukong', 'bajie', 'xiaohong', 'fangfang']
console.log(newNames) // [] 参数为0,没有删除元素所以返回的是空数组
 
//删除最后一个元素
let arr = [1,2,3,4,5]
let newArr = arr.splice(-1,1)
console.log(arr) // [1,2,3,4]
console.log(newArr) // [5]
 
//删除最后一个元素,同时在最后一个元素前面添加一个元素
let arr = [2,4,6,8]
arr.splice(-1,1,100)
console.log(arr) // [2, 4, 6, 100]

二、slice()

定义:从已有的数组中返回你选择的某段数组元素

语法:arrayObject.slice(start,end)

1、start表示从何处开始选取,start可以为负数,此时它规定从数组尾部开始算起的位置。也就是-1 ,指最后一个元素,-2 指倒数第二个元素,以此类推

2、end表示从何处结束选取,end如果没有被指定参数,数组会包含从 start 到最后一个数组元素的所有元素

3、slice()不会改变原数组,而是返回所选取范围的数组元素

示例

let arr = ['a','b','c','d']
let newArr = arr.slice(0,2)
console.log(arr) // ['a','b','c','d']
console.log(newArr) // ['a', 'b']
 
let a = [1,2,3,4]
let b = a.slice(-1)
console.log(a) //[1,2,3,4]
console.log(b) //[4] 没有end,取的就是最后一个
  • 暂无回复内容