JS删除数组指定元素

124

1. 已知元素值,使用 filter() 方法

filter() 方法会创建一个新数组,其包含通过所提供函数实现的测试的所有元素。这种方法不会改变原数组,而是返回一个新数组。

示例代码:

javascript

const arr = [1, 2, 3, 4, 5];

const elementToRemove = 3;

const newArr = arr.filter(item => item!== elementToRemove);

console.log(newArr); // 输出: [1, 2, 4, 5]

console.log(arr);    // 输出: [1, 2, 3, 4, 5](原数组未改变)

代码解释:

arr.filter(item => item!== elementToRemove) 会遍历数组 arr 中的每个元素 item,如果 item 不等于要删除的元素 elementToRemove,则将该元素添加到新数组中。

2. 已知元素索引,使用 splice() 方法

splice() 方法可以改变原数组,它可以删除、替换或添加元素。若要删除指定索引的元素,可传入两个参数:起始索引和要删除的元素个数。

示例代码:

javascript

const arr = ['apple', 'banana', 'cherry', 'date'];

const indexToRemove = 1;

arr.splice(indexToRemove, 1);

console.log(arr); // 输出: ['apple', 'cherry', 'date']

代码解释:

arr.splice(indexToRemove, 1) 表示从索引 indexToRemove 开始,删除 1 个元素。原数组 arr 会被修改。

3. 对于对象数组,根据对象属性删除元素

当数组元素为对象时,可结合 findIndex() 和 splice() 方法根据对象的某个属性值删除元素。

示例代码:

javascript

const arr = [

  { id: 1, name: 'John' },

  { id: 2, name: 'Jane' },

  { id: 3, name: 'Bob' }

];

const idToRemove = 2;

const index = arr.findIndex(item => item.id === idToRemove);

if (index!== -1) {

  arr.splice(index, 1);

}

console.log(arr); 

// 输出: [ { id: 1, name: 'John' }, { id: 3, name: 'Bob' } ]

代码解释:

arr.findIndex(item => item.id === idToRemove) 会查找数组中 id 等于 idToRemove 的元素的索引。

如果找到该元素(索引不为 -1),则使用 splice() 方法删除该元素。

4. 使用 pop() 和 shift() 方法删除特定位置元素(适用于首尾元素)

pop() 方法用于删除数组的最后一个元素,并返回该元素。

shift() 方法用于删除数组的第一个元素,并返回该元素。

示例代码:

javascript

const arr = [10, 20, 30];

// 删除最后一个元素

const lastElement = arr.pop();

console.log(lastElement); // 输出: 30

console.log(arr);         // 输出: [10, 20]


// 删除第一个元素

const firstElement = arr.shift();

console.log(firstElement); // 输出: 10

console.log(arr);          // 输出: [20]

代码解释:

arr.pop() 会删除并返回数组 arr 的最后一个元素。

arr.shift() 会删除并返回数组 arr 的第一个元素。这两个方法都会改变原数组。


无人货架批量大规模上架商品解决方案

架构设计之初未考虑到业务需要批量上架商品,几万个逐一生成货架商品需要耗费大量人力,而货架商品的结构数量都一样。...

物业小区无人销售智能货架方案

小区无人值守货架销售的建设方案,从三个方面阐述货架集成建设,投入使用,系统管理。...

厨余收运管理系统迭代开发,回收系统优化升级

完成基础数据开发,试运行一段时间后,在数据沉淀的基础上对数据进行挖掘,对业务处理进行优化升级。...

餐厨油脂再生资源收运回收管理系统方案

通过互联网+改变餐厨收运回收传统工作方式,移动手机助力系统提供工作效率、’管理效率,数据电子化打造收运大数据建设。...

医馆诊所管理系统

实现中医馆中诊所,理疗的业务处理,分为小程序用户端,医生端,管理端,PC管理端,PC服务台,PC医生端...

thinkphp8安装VIEW,多应用,验证码

官方THKPHP8默认只有单应用一个控制器,其他插件可按需安装,通常需要VIEW和多应用...

sqlserver中的nvarchar和varchar的区别

数据库表中nvarchar和varchar都可以用来表示字符的存储类型。...

微信接口开发返回码一览表

返回错误码对照表...

高德地图mark按类型批次显示不同的颜色

大量数据点显示在地图上,通常使用海量点的API展示,通过建立多个海量点达到按分类显示不同颜色的mark,看起来更直观...

餐厨垃圾收运小程序需要什么条件

建立一个小程序的硬件设施需要服务器,域名,若干个邮箱...

0.087997s