s删除数组中某一项或几项的几种方法
一、删除第一个元素
1、shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
注意: 此方法改变数组的长度!
提示: 移除数组末尾的元素可以使用 pop() 方法。
|
1
2
3
|
let arr = [1,2,3,4,5]arr.shift() // 1// arr => [2,3,4,5] |
2、slice() 方法可从已有的数组中返回选定的元素。
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意: slice() 方法不会改变原始数组。
|
1
2
3
4
|
let arr = [1,2,3,4,5]let newArr = arr.slice(1)// arr => [1,2,3,4,5]// newArr => [2,3,4,5] |
3、splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
返回值
如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
|
1
2
3
4
|
let arr = [1,2,3,4,5]let newArr = arr.splice(0, 1)// arr => [2,3,4,5]// newArr => [1] |
二、删除最后一个元素
1、pop() 方法用于删除数组的最后一个元素并返回删除的元素。
注意:此方法改变数组的长度!
提示: 移除数组第一个元素,请使用 shift() 方法。
|
1
2
3
|
let arr = [1,2,3,4,5]arr.pop() // 5// arr => [1,2,3,4] |
2、slice() 方法
|
1
2
3
4
|
let arr = [1,2,3,4,5]let newArr = arr.slice(0, arr.length - 1)// arr => [1,2,3,4,5]// newArr => [1,2,3,4] |
3、 splice() 方法用于添加或删除数组中的元素。
|
1
2
3
4
|
let arr = [1,2,3,4,5]let newArr = arr.splice(arr.length - 1, 1)// arr => [1,2,3,4]// newArr => [5] |
三、删除数组中某个指定下标的元素
1、splice 删除
|
1
2
3
4
|
let index = 3let arr = [1,2,3,4,5] arr.splice(index, 1) // [4]// arr => [1,2,3,5] |
2、for循环删除
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
let index = 3, // 删除的id arr = [1,2,3,4,5], arrLen = arr.length, newArr = []; for (let i = 0; i < arrLen; i++) { if (i !== index) { newArr.push(arr[i]) }} // arr => [1,2,3,4,5]// newArr => [1,2,3,5] |
3、delete删除
JavaScript提供了一个delete关键字用来删除(清除)数组元素。
要注意的是,使用delete删除元素之后数组长度不变,只是被删除元素被置为empty了。
|
1
2
3
4
|
let index = 3let arr = [1,2,3,4,5]delete arr[index] // arr = > [1, 2, 3, empty, 5] |
四、删除数组中某个指定元素
1、splice 删除
|
1
2
3
4
5
|
let value = 'b', arr = ['a','b','c','d'] arr.splice(arr.indexOf(value), 1) // ['b']// arr => ['a','c','d'] |
2、filter 删除
|
1
2
3
4
5
|
var arr = ['a','b','c','d'], value = 'b' arr = arr.filter(item => item != value)// arr => ['a','c','d'] |
3、for 删除
|
1
2
3
4
5
6
7
8
9
10
11
12
|
let value = 'b', arr = ['a','b','c','d'], arrLen = arr.length, newArr = [] for (let i = 0; i < arrLen; i++) { if (arr[i] !== value) { newArr.push(arr[i]) }} // 其他forEach、map、for of循环同理 |
4、Set 删除
|
1
2
3
4
5
6
|
let arr = ['a','b','c','d'], value = 'b'let newSet = new Set(arr)newSet.delete(value)let newArr = [...newSet]// newArr => ['a','c','d'] |