JavaScript 中清空数组的几种方法

news2025/1/8 11:48:17

目录

 Array.prototype.splice()

将 length 设置为 0

 分配新的空数组

length = 0和 Array = [] 之间的差异?


JavaScript 中清空数组的几种方法

 

 多少人都想走出浪浪山 🧨🧨🧨

 Array.prototype.splice()

let course = ['HTML', 'CSS', 'JavaScript']

course.splice(0)
console.log(course.length) // 0

 注意:此方法会影响其他引用。 

let course = ['HTML', 'CSS', 'JavaScript']
let other = course

course.splice(0)
course // []
other // []

 由于 splice() 返回一个已删除项目的数组,您可以通过将结果分配给一个新变量来获取原始数组的副本:

let foo = ['hello', 'world']

// 清空并创建一个 foo 的副本
let bar = foo.splice(0, foo.length)

console.log(foo) // []
console.log(bar) // ['hello', 'world']

将 length 设置为 0

将数组的长度设置为零。 

let course = ['HTML', 'CSS', 'JavaScript']
course.length = 0
console.log(course) // []

 分配新的空数组

let course = ['HTML', 'CSS', 'JavaScript']
course = []
console.log(course.length) // 0

length = 0和 Array = [] 之间的差异?

在大多数情况下,将变量重新分配给空数组是更好的选择。它比调整 length 属性更短、更明确。

但有时,你有一个数组是通过引用分配的,你想让它们保持引用。

假如我们有一个 foo 数组,我们还有一个 bar 变量,我将它的值设置为 foo 数组。

let foo = ['hello', 'world']

// 添加引用
let bar = foo

如果我重新分配 foo 的值为 [] 空数组,bar 变量仍指向分配给它的原始数组。

foo = []

// bar 不受影响
console.log(bar) // ['hello', 'world']

    foo = [] 将一个新的数组的引用赋值给变量,其他引用并不受影响。这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。

    如果我改为 foo.length = 0,删除数组里的所有内容,也将影响到其他引用。

let foo = ['hello', 'world']
let bar = foo

foo.length = 0

// `bar` 受影响
console.log(bar) // []

 如果数组被声明为常量,则不能将其重新分配给 []。这时我们应该使用 lenght = 0

const course = ['HTML', 'CSS', 'JavaScript']
course = [] // 会抛出异常:"Assignment to constant variable"

// 使用 length = 0
course.length = 0

 最后:逃不出去的浪浪山,才是每个打工人心底最大的恐惧

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四章.神经网络—线性神经网络,Delta学习规则

第四章.神经网络 4.2 线性神经网络与Delta学习规则 线性神经网络在结构上与感知器非常相似,只是激活函数不同。在模型训练时把原来的sign函数改成purelin函数:y x 1.激活函数 2.线性神经网络示例 1).题目: 假设平面坐标系上有四个点,(3,3)…

基于python的二手房数据分析,思路+代码范例

本篇博客将基于 Python ,梳理二手房数据分析的整体过程。 文章目录思路整理数据分析步骤的示例代码基于 Python 的二手房分析 | 另一种代码思路整理 数据收集:从网站或其他数据源收集二手房数据,并将其存储在 CSV 或其他数据格式中。数据清洗…

Python连接Liunx中mysql数据库-多表查询【10个经典案例】

关于Python连接liunx中mysql数据库的方式在这一篇文章 Python连接Liunx中mysql数据库-保姆级教程 关于Python针对liunx中的mysql数据库进行增删改查操作的文章在这一篇可以看一下 Python连接Liunx中mysql数据库-增删改查 对于单表查询的学习可以看这一篇文章 Python对liunx中my…

帆软FineReport 实现省市区树形联动

在项目数据展示中,涉及到行政区划,省市区三级联动,运用帆软FineReport该如何实现,记录下来,方便备查。 第一步、树形数据准备 行政区划主要分为三级,即省市区,特殊的包含四个直辖市&#xff0…

【人机交互】COMP5517 HCI 课程笔记

人机交互Class 1: Overview of Human Computer Interaction人机交互的目标What does HCI involveClass 1 ContentImportance of HCISteps of HCISome HCI ProductsClass 1: Overview of Human Computer Interaction 人机交互的目标 Methods for grounding the design in real…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jan 2023)

Windows 11, version 22H2,2023 年 1 月 更新,持续更新中… 请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 最新发布 &#x1f449…

分布式session

目录 1.什么是session 2.session共享问题 2.1.session复制同步 2.2.存在客户端 2.3.一致性hash 2.4.统一存储 1.什么是session HTTP是无状态的,session是一种会话保持技术,目的就是以一种方式来记录http请求之间需要传递、交互的数据。 不是每次…

vite配置CDN和文件压缩

例子,vue3导入element-plus 打包大小 1.加载插件cdn-import yarn add vite-plugin-cdn-import -D 2.配置vite vite.config.js import { defineConfig } from "vite"; import vue from "vitejs/plugin-vue"; import { autoComplete, Plugin as importTo…

PPI数据集示例项目学习图神经网络

目录PPI数据集:算法原理:代码实现:训练过程PPI数据集: 参考:https://blog.csdn.net/weixin_43580130/article/details/116449062 PPI(生物化学结构) 网络是蛋白质相互作用(Protein-Protein Interaction,P…

若依配置教程(四)代码生成

文章目录一、在数据库中新建表(代码生成的数据表)二、打开若依系统,进入代码生成界面三、编辑字段和基本信息四、解压文件夹,放到相关目录一、在数据库中新建表(代码生成的数据表) 建议在表中必须加的字段…

通信原理笔记—脉冲编码调制(PCM)

目录 脉冲编码调制(PCM): PCM概念: A、μ律的PCM编码: A律对数压缩特性的十三折线法近似: A律正输入值编码表: A、μ率的PCM编码方法: A 率的PCM译码方法: 脉冲编码调制(PCM):…

VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注

项目场景: VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注: 并且有相关的 提示信息 Virtual script not found, may missing <script lang“ts“> / “allowJs“: true / jsconfig.json.volar 问题描述…

ESP32设备驱动-Si7021温度传感器驱动

Si7021温度传感器驱动 文章目录 Si7021温度传感器驱动1、Si7021介绍2、硬件准备3、软件准备4、驱动实现1、Si7021介绍 Si7021 I2C 湿度和温度传感器是一款集成了湿度和温度传感器元件、模数转换器、信号处理、校准数据和 I2C 接口的单片 CMOS IC。 Si7021 提供精确、低功耗、工…

Springboot美容院管理系统 java idea mysql

config:主要用来存储配置文件,以及其他不怎么动用的信息 controller:项目的主要控制文件 dao: 主要用来操作数据库 entity: 实体,用来放与数据库表里对应的实体类,表中的字段对应类中的属性值,并…

【10w字】超详细【百分百拿offer】的面试教程,集合5000多家软件测试公司面试题。

一、引言 1.1 文档目的 【百分百解决在面试中遇到的些问题】 1.2 背景 此文档历经1年的时间,基本概括了深圳与广州,上干家公司的面试问题并结合基本盖了,95%以上的面试问题,文章内容比较多耐心看完必能拿下心仪的offer。在这里…

webpack 配置时包与包版本不对应导致无法启动项目

经常在配置 webpack 时因不指定具体版本导致 npm 下载下来的依赖之间互相不对应。 (简述:webpack 配置时包与包的版本对应问题,报错了去 npm 找包,链接到 github 上查看 package.json 的 peerDependencies 依赖) 例如&…

VAE算法

参考博客: From Autoencoder to Beta-VAE | LilLog 链接:https://zhuanlan.zhihu.com/p/34998569 参考视频: https://www.youtube.com/watch?vYNUek8ioAJk&ab_channelHung-yiLee 为了使模型具有生成能力,VAE 要求每个 p(Z…

健身大神都戴什么耳机、健身大佬都在用的运动耳机推荐

很多朋友在户外健身的时候喜欢戴上耳机,在音乐的节奏中去运动,现在市面上的运动耳机选择也特别丰富,不乏出现一些明明不适合运动却偏打着运动耳机的名号在售卖,这也就导致许多消费者不慎踩坑,为了能让大家选择到一款专…

45-48 微服务链路追踪组件Skywalking

skywalking是什么 分布式系统的应用程序性能监视 工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一…

RabbitMq之实现基于插件的延迟队列

死信队列通过设置延迟时间TTL能实现延迟队列的效果,但是 由于队列先入先出的特性, 如果队列头的消息过期时间很长, 后面的消息过期时间很短, 会导致后面的消息过期后不能及时被消费掉 基于死信队列的缺点,基于插件实现的延迟队列就很好地解决了这个问题。…