JS如何移除数组中的某个元素

JS如何移除数组中的某个元素

数组是最常用的数据结构。Javascript 的 Array 数组是一个级别高、类似列表的全局对象。在 js 中,数组的长度和数据类型都是不固定的。js 的数组索引只能使用数字,不能使用字母。
author
Wonderhows July 25, 2021

数组是最常用的数据结构。Javascript 的 Array 数组是一个级别高、类似列表的全局对象。在 js 中,数组的长度和数据类型都是不固定的。js 的数组索引只能使用数字,不能使用字母。创建一个数组如下:

let fruits = ['apple', 'banana' ]
console.log(fruits.lenght)
// 2

将元素推入数组中:

fruits.push('orange')
// ['apple', 'banana', 'orange']

那么 js 中如何移除数组中的某个特定元素呢?比如我们想要将 fruits 数组中的 banana 去掉。我们应该如何操作呢?

js 通过找到元素的索引来删除该元素

通过 indexOf 函数找到所要删除的元素,然后使用 splice 删除即可。具体代码如下:

let fruits = ['apple', 'banana' ]
console.log(fruits.lenght)
fruits.push('orange')

// remove banana
let index = fruits.indexOf('banana')
if (index > -1) {
	fruits.splice(index, 1)
}
consolo.log(fruits)
// ['apple', 'orange']

splice 的第二个参数指的是需要删除的元素数据。需要注意的是,splice 会修改原数组,并且返回一个包含被删除元素的新数组。

js 通过 filter 函数删除数组中的特定元素

我们还可以使用 array.filter(…) 函数来删除数组中的特定元素。这个函数不会改变原函数,而是会返回一个新的函数。但这个函数需要浏览器支持,像 IE9 以前的浏览器就不支持. 但目前大部分的浏览器都已经支持了。具体代码如下:

var value = 'banana'

var fruits = ['apple', 'banana', 'orange']

fruits = fruits.filter(function(item) {
    return item !== value
})

console.log(arr)
// ['apple', 'orange']

ES6 版本

var value = 'banana'

var fruits = ['apple', 'banana', 'orange']

fruits = fruits.filter(item => item !== value)

console.log(arr)
// ['apple', 'orange']
comments powered by Disqus