导读:本期聚焦于小伙伴创作的《JavaScript如何从数组中删除元素?常用方法详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《JavaScript如何从数组中删除元素?常用方法详解》有用,将其分享出去将是对创作者最好的鼓励。

怎样用JavaScript从数组中删除元素

在JavaScript开发中,数组是最常用的数据结构之一,很多时候我们需要从数组中删除不需要的元素。不同的删除场景对应不同的方法,下面我们结合实际场景和代码示例,详细介绍几种常用的数组元素删除方式。

一、删除数组末尾的元素:pop()方法

如果只需要删除数组最后一个元素,最简便的方式是使用数组自带的pop()方法。这个方法会修改原数组,删除最后一个元素,并且返回被删除的元素。

// 定义一个包含多个元素的数组
let fruits = ['苹果', '香蕉', '橙子', '葡萄'];
console.log('原数组:', fruits); // 输出:['苹果', '香蕉', '橙子', '葡萄']

// 调用pop方法删除最后一个元素
let removedItem = fruits.pop();
console.log('被删除的元素:', removedItem); // 输出:葡萄
console.log('删除后的数组:', fruits); // 输出:['苹果', '香蕉', '橙子']

二、删除数组开头的元素:shift()方法

如果需要删除数组的第一个元素,可以使用shift()方法。和pop()类似,这个方法也会直接修改原数组,删除第一个元素并返回被删除的元素。

let numbers = [10, 20, 30, 40, 50];
console.log('原数组:', numbers); // 输出:[10, 20, 30, 40, 50]

// 调用shift方法删除第一个元素
let firstRemoved = numbers.shift();
console.log('被删除的元素:', firstRemoved); // 输出:10
console.log('删除后的数组:', numbers); // 输出:[20, 30, 40, 50]

三、删除指定位置的元素:splice()方法

当需要删除数组中任意位置的一个或多个元素时,splice()方法是最灵活的选择。它的语法是数组.splice(起始索引, 删除个数, 新增元素1, 新增元素2...),其中前两个参数是删除操作必需的,后面可选的参数用于在删除位置插入新元素。splice()会修改原数组,返回一个由被删除元素组成的新数组。

let colors = ['红', '橙', '黄', '绿', '蓝', '紫'];
console.log('原数组:', colors); // 输出:['红', '橙', '黄', '绿', '蓝', '紫']

// 从索引2开始,删除2个元素
let removedColors = colors.splice(2, 2);
console.log('被删除的元素:', removedColors); // 输出:['黄', '绿']
console.log('删除后的数组:', colors); // 输出:['红', '橙', '蓝', '紫']

// 删除的同时插入新元素
let moreColors = ['青', '粉'];
colors.splice(1, 0, ...moreColors); // 从索引1开始,删除0个元素,插入两个新元素
console.log('插入后的数组:', colors); // 输出:['红', '青', '粉', '橙', '蓝', '紫']

四、删除满足条件的元素:filter()方法

如果我们想删除所有符合某个条件的元素,比如删除数组中所有的偶数,或者删除所有值为null的元素,使用filter()方法会更合适。filter()不会修改原数组,而是返回一个符合条件的新数组,我们可以把新数组赋值给原变量来实现删除效果。

let scores = [85, 92, 68, 45, 78, 90, 55];
console.log('原数组:', scores); // 输出:[85, 92, 68, 45, 78, 90, 55]

// 删除所有低于60分的成绩,保留及格的成绩
let passedScores = scores.filter(score => score >= 60);
console.log('删除不及格成绩后的数组:', passedScores); // 输出:[85, 92, 68, 78, 90]

// 也可以直接覆盖原数组
scores = scores.filter(score => score >= 60);
console.log('覆盖后的原数组:', scores); // 输出:[85, 92, 68, 78, 90]

五、通过索引删除单个元素:结合indexOf和splice

如果我们知道要删除的元素的值,但不知道它的索引,可以先使用indexOf()方法找到元素的索引,再用splice()删除。不过要注意,indexOf()只会返回第一个匹配元素的索引,如果数组中有多个相同的值,只会删除第一个。

let hobbies = ['篮球', '足球', '羽毛球', '跑步', '足球'];
console.log('原数组:', hobbies); // 输出:['篮球', '足球', '羽毛球', '跑步', '足球']

// 找到第一个'足球'的索引
let targetIndex = hobbies.indexOf('足球');
if (targetIndex !== -1) {
  // 如果找到了元素,就删除它
  hobbies.splice(targetIndex, 1);
}
console.log('删除第一个足球后的数组:', hobbies); // 输出:['篮球', '羽毛球', '跑步', '足球']

方法选择建议

不同的删除场景可以对应选择不同的方法,我们可以参考下面的表格快速判断:

删除场景推荐方法是否修改原数组
删除末尾元素pop()
删除开头元素shift()
删除任意位置、任意个数的元素splice()
删除所有符合条件的元素filter()否(返回新数组)
按值删除单个元素(已知值)indexOf() + splice()

实际开发中可以根据需求选择合适的方法,如果需要保留原数组不被修改,优先选择filter()这类返回新数组的方法;如果允许修改原数组,使用pop()shift()splice()会更高效。

JavaScript数组删除pop方法shift方法splice方法filter方法 本作品最后修改时间:2026-05-23 22:57:04

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。