JavaScriptJavaScript·

JS删除数组的几种方式

发布时间:2024-08-28 17:55:02阅读量:29
专业文章
转载请注明来源

JavaScript中数组元素删除的八种方法汇总这篇文章中,我们总结了八种数组删除的JS方法,下面我们将他们应用于具体场景中,更好的说明JS中如何删除数组元素。

一、删除第一个元素

1、shift() 方法

调用shift()方法可以把数组的第一个元素删除,并返回第一个元素的值。

注意: 此方法改变数组的长度!

提示: 移除数组末尾的元素可以使用 pop() 方法。

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

2、slice() 方法

slice() 方法可从已有的数组中返回选定的元素。

slice() 方法不仅可以用于数组,还能用于字符串。slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

注意: slice() 方法不会改变原始数组。

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

3、splice() 方法

splice() 方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。

如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组

var arr = [1, 2, 3, 4];
arr.splice(0,1);      //[1]
console.log(arr);    //[2, 3, 4]

二、删除最后一个元素

1、pop() 方法

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

注意:此方法改变原数组!

提示: 移除数组第一个元素,请使用 shift() 方法。

var arr = [1, 2, 3, 4];
arr.pop()    //4
console.log(arr)    //[1, 2, 3]

2、slice() 方法

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

3、 splice() 方法

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

三、删除数组中某个指定下标的元素

1、splice 删除

let index = 3

let arr = [1,2,3,4,5]

 arr.splice(index, 1) // [4]

// arr => [1,2,3,5]

2、for循环push删除

通过循环遍历数组,将符合条件的元素push到新的数组中

let index = 3, // 删除的id

let arr = [1,2,3,4,5],

let arrLen = arr.length,

let 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、for循环splice删除

通过循环遍历数组,使用splice()方法将符合条件的元素删除

let index = 3 // 删除的id

var arr = [1,2,3,4,5]

arr.forEach(function(item, i) {
    if(i == index) {
        arr.splice(i, 1);
    }
});

// arr => [1, 2, 3, 5]

4、delete删除

JavaScript提供了一个delete关键字用来删除(清除)数组元素。

要注意的是,使用delete删除元素之后数组长度不变,只是被删除元素被置为undefined了。遍历直接跳过undefined

let index = 3

let arr = [1,2,3,4,5]

delete arr[index]

// arr  = > [1, 2, 3, undefined, 5]

四、删除数组中某个指定元素

1、splice 删除

let value = 'b',

let arr = ['a','b','c','d']



arr.splice(arr.indexOf(value), 1) // ['b']

// arr => ['a','c','d']

2、filter 删除

let arr = ['a','b','c','d'],
let value = 'b'
arr = arr.filter(item => item != value)
// arr => ['a','c','d']

3、for 删除

let value = 'b',

let arr = ['a','b','c','d'],

let arrLen = arr.length,

let newArr = []

for (let i = 0; i < arrLen; i++) {

    if (arr[i] !== value) {

        newArr.push(arr[i])

    }

}  

// 其他forEach、map、for of循环同理

4、Set 删除

let arr = ['a','b','c','d'],

let  value = 'b'

let newSet = new Set(arr)

newSet.delete(value)

let newArr = [...newSet]

// newArr => ['a','c','d']


评论区

暂无评论,来发布第一条评论吧!

弦圈热门内容

Djano云服务器部署 uwsgi+nginx+https部署

Django启动服务器的命令runserver,其实也是启动了一个自带的uwsgi服务。如果想要一直在后台不停的运行django项目,需要部署uwsgi服务器。uwsgi安装官方文档:安装uWSGI — uWSGI 2.0 文档 (uwsgi-docs-zh.readthedocs.io)可以直接用pip安装uwsgi:pip install uwsgi在django项目根地址,即跟manage.py同目录下新建配置文件uwsgi.ini,如:mysite1/uwsgi.iniuwsgi.ini必须以[uwsgi]开头,内容如下:[uwsgi] chdir=/mysite1 module=mysite1.wsgi:application socket=127.0.0.1:8000 master=True pidfile=uwsgi.pid vacuum=True max-requests=5000 daemonize=uwsgi.logchdir为django项目根地址,socket为django启动服务器的ip地址,daemonize为日志地址。注意,每个django项目中自动生成一 ...

token简介以及python计算token的方法

后端登陆实现需要用到token机制或者cookies机制。Token和cookies都可以用来存放用户信息。但是token可以将信息存放在浏览器中的localstorage中,不占用服务器内存,而cookies则需要在每次请求中送往服务器中,吃服务器资源。同时,token作为一种比cookies更新的技术,有更多的优势,可以参考token和cookie的区别。每个用户都可以对应一个token值。Token可以由用户名+密码+时间,经过哈希加密得到,也可以直接由用户名和密码经过加密算法加密后得到。复杂程度取决于自己。加密后得到的token值,存放在会话session中。Python使用哈希算法进行加密,计算token值:import hashlib md5 = hashlib.md5() md5.update((username+password+"1258"+str(time.time())).encode()) token = md5.hexdigest()也可以使用python的pip库pyjwt来实现加密,计算token值。$ pip install pyjwtJwt输入的是字 ...

Python time模块与datetime模块的区别

时间方面的编程在开发过程中是很常见的,而Python提供了datetime 和 time这两个关于时间的模块。接下来,我们将讨论这两个模块中的函数有什么区别。1. time模块:如果你想要获取当前的本地时间,那么首先你需要运行time.time()来获取当下的时间戳。import time #获取目前的时间戳 time.time() #输出: 1715254313.7382145需要注意的是,该时间戳单位是秒(s),不是毫秒(ms)。然后你需要格式化得到的时间戳,最后才能得到你想要的时间格式,比如%Y-%m-%d %H:%M:%S。time.localtime(time.time()) #输出: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=9, tm_hour=19, tm_min=34, tm_sec=54, tm_wday=3, tm_yday=130, tm_isdst=0) time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) #输出: '2024-0 ...

为什么有了uwsgi 还要 nginx 服务器?

有关nginx的简单介绍,详见Nginx服务器反向代理。uwsgi是python的一个通信协议,同时也是一种web服务器,而nginx则是高性能反向代理的web服务器。在Django项目服务器部署中,uwsgi几乎是不可替代的。然而部署好了uwsgi,其实django接口已经能够响应请求,为什么还要额外配置nginx服务器?因为,相比于直接将真实地址暴露在公网上,在外面套一层nginx安全性更高,具体如下:安全问题,程序不能直接被浏览器访问到,而是通过nginx,nginx只开放某个接口,uwsgi本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用。负载均衡问题,一个uwsgi很可能不够用,即使开了多个work也是不行,毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。静态文件处理效率问题,用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为,而且他们本身对文件的处理也不如nginx好,所以整个静态文件的处理都直接由nginx完成,静态文件的访问完全不去经过uwsg ...