JS 删除数组中某个元素的几种方式

JS 删除数组中某个元素的几种方式目录第一种 删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除第二种 删除第一个元素 shift 删除 slice 删除 splice 删除第三种 删除数组中某个指定下标的元素 splice 删除 for 删除第四种 删除数组中某个指定元素 splice 删除 filter 删除 forEach m

目录

第一种:删除最后一个元素

pop 删除

slice 删除 

 splice 删除

for 删除

length 删除

第二种: 删除第一个元素

shift 删除

slice 删除

splice 删除

第三种:删除数组中某个指定下标的元素

splice 删除

for 删除

第四种:删除数组中某个指定元素的元素

splice 删除

filter 删除

forEach、map、for 删除

Set 删除


第一种:删除最后一个元素

pop 删除

var arr = [1,2,3,4,5] arr.pop() // arr => [1,2,3,4]

slice 删除 

var arr = [1,2,3,4,5] var new_arr = arr.slice(0, -1) // arr => [1,2,3,4,5] // new_arr => [1,2,3,4] var arr = [1,2,3,4,5] var new_arr = arr.slice(0, arr.length - 1) // arr => [1,2,3,4,5] // new_arr => [1,2,3,4]

 splice 删除

var arr = [1,2,3,4,5] var new_arr = arr.splice(-1) // arr => [1,2,3,4] // new_arr => [5] var arr = [1,2,3,4,5] var new_arr = arr.splice(-1, 1) // arr => [1,2,3,4] // new_arr => [5] var arr = [1,2,3,4,5] var new_arr = arr.splice(arr.length - 1) // arr => [1,2,3,4] // new_arr => [5] var arr = [1,2,3,4,5] var new_arr = arr.splice(arr.length - 1, 1) // arr => [1,2,3,4] // new_arr => [5]

for 删除

var arr = [1,2,3,4,5] var new_arr = [] for (let i = 0, len = arr.length; i < len; i++) { if (i < len - 1) { new_arr.push(arr[i]) } } // arr => [1,2,3,4,5] // new_arr => [1,2,3,4]

length 删除

var arr = [1,2,3,4,5] arr.length = arr.length - 1 // arr => [1,2,3,4]

第二种: 删除第一个元素

shift 删除

var arr = [1,2,3,4,5] arr.shift() // arr => [2,3,4,5]

slice 删除

var arr = [1,2,3,4,5] var new_arr = arr.slice(1) // arr => [1,2,3,4,5] // new_arr => [2,3,4,5]

splice 删除

var arr = [1,2,3,4,5] var new_arr = arr.splice(0, 1) // arr => [2,3,4,5] // new_arr => [1]

第三种:删除数组中某个指定下标的元素

splice 删除

var delete_index = 2 var arr = [1,2,3,4,5] // arr => [1,2,3,4,5] var new_arr = arr.splice(delete_index, 1) // new_arr => [3] // arr => [1,2,4,5]

for 删除

var delete_index = 2, arr = [1,2,3,4,5], new_arr = [] for (let i = 0, len = arr.length; i < len; i++) { if (i != delete_index) { new_arr.push(arr[i]) } } // arr => [1,2,3,4,5] // new_arr => [1,2,4,5]

注意:

1. 不可以使用 delete 方式删除数组中某个元素,此操作会造成稀疏数组,被删除的元素的为位置依然存在为empty,且数组的长度不变

2. 不可以使用 forEach 方法比对数组下标值,因为 forEach 在循环的时候是无序的

第四种:删除数组中某个指定元素的元素

splice 删除

var element = 2, arr = [1,2,3,4,5] arr.splice(arr.indexOf(2), 1) // arr => [1,3,4,5]

filter 删除

var arr = [1,2,3,4,5], element = 2 arr = arr.filter(item => item != element) // arr => [1,3,4,5]

forEach、map、for 删除

var arr = [1,2,3,4,5], element = 2, new_arr = [] arr.forEach(item => (item != element && new_arr.push(item))) // new_arr => [1,3,4,5] // map 同理 var arr = [1,2,3,4,5], element = 2, new_arr = [] for (let i = 0; i < arr.length; i++) { arr[i] != element && new_arr.push(arr[i]) } // new_arr => [1,3,4,5]

Set 删除

var arr = [1,2,3,4,5], element = 2 var new_set = new Set(arr) new_set.delete(element) var new_arr = [...new_set] // new_arr => [1,3,4,5]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198933.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:12
下一篇 2026年3月26日 下午2:12


相关推荐

  • GC算法[通俗易懂]

    GC算法[通俗易懂]JVM(JavaVirtualMachine) GC是什么?频繁收集Young区 较少收集Old区 基本不动Perm区  JVM在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是指新生代,因此GC按照回收的区域又分了两种类型,一种是普通GC(minorGC),一种是全局GC(majorGCorFullGC) 普通GC(…

    2022年6月29日
    30
  • mybatis log plugin 激活码[最新免费获取][通俗易懂]

    (mybatis log plugin 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsa…

    2022年3月28日
    43
  • java编译报错提示编码GBK的不可映射字符啥意思_java字符串编码转换

    java编译报错提示编码GBK的不可映射字符啥意思_java字符串编码转换在我想要在println输出一些中文的时候,发现编码出现错误原因:java程序在编译的时候,需要使用JDK开发工具包中的JAVAC.EXE命令,而JDK开发工具包是国际版的,默认格式为UNICODE的编码格式。因此在默认情况下,javac.exe会采用默认的编码格式,什么是默认的编码格式呢?也就是我们在编译JAVA程序时,在未指定源程序文件的编码格式的情况下,JDK会优先获取操作系统的file.encoding参数,然后JDK就把我们的JAVA源程序从file.encoding编码格式转化为JAVA

    2025年11月7日
    4
  • 压缩文件密码破解神器rarcrack

    压缩文件密码破解神器rarcrackhttp://hi.baidu.com/sdusoul/item/b11d13ee1181b4225b2d6401采用的是暴力破解,可以指定特定密码,否则暴力破解,很长时间吧要,三位密码100需要2分钟左右,六位密码要一年吧,用mapreduce大概可以快些。

    2022年6月6日
    34
  • java异常中throw和throws的区别

    java异常中throw和throws的区别throws 和 throwthrows 用来声明一个方法可能产生的所有异常 不做任何处理而是将异常往上传 谁调用我我就抛给谁 nbsp nbsp 用在方法声明后面 跟的是异常类名 nbsp nbsp 可以跟多个异常类名 用逗号隔开 nbsp nbsp 表示抛出异常 由该方法的调用者来处理 nbsp nbsp throws 表示出现异常的一种可能性 并不一定会发生这些异常 throw 则是用来抛出一个具体的异常类型 nbsp nbsp 用在方法体内 跟的是异常对

    2026年3月19日
    1
  • 在线购物系统 实验七 顺序图

    在线购物系统 实验七 顺序图在线购物系统一 顺序图 1 nbsp 游客注册顺序图 nbsp 2 nbsp 用户登录顺序图 nbsp 3 nbsp 用户修改个人信息顺序图 nbsp 4 nbsp 顾客搜索商品顺序图 nbsp 5 nbsp 顾客查询订单顺序图 nbsp 6 nbsp 顾客维护购物车顺序图 nbsp 7 nbsp 顾客购买商品顺序图 nbsp 8 nbsp 顾客评价商品顺序图 nbsp 9 nbsp 管理员管理商品顺序图 nbsp 10 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 客服回复咨询顺序图 nbsp 11 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 管理订单顺序图 nbsp 12 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 管理评

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号