首页 > 其他分享 >清空数组的两种方法

清空数组的两种方法

时间:2023-12-27 13:44:47浏览次数:25  
标签:两种 list 数组 清空 var foo empty

如果你定义了一个数组,然后你想清空它。 通常,你会这样做:

// 定义一个数组
var list = [1, 2, 3, 4];
function empty() {
    //清空数组
    list = [];
}
empty();

但是,这有一个效率更高的方法来清空数组。 你可以这样写:

var list = [1, 2, 3, 4];
function empty() {
    //empty your array
    list.length = 0;
}
empty();
  • list = [] 将一个新的数组的引用赋值给变量,其他引用并不受影响。 这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。

  • list.length = 0 删除数组里的所有内容,也将影响到其他引用。

然而,如果你复制了一个数组(A 和 Copy-A),如果你用list.length = 0清空了它的内容,复制的数组也会清空它的内容。

考虑一下将会输出什么:

var foo = [1,2,3];
var bar = [1,2,3];
var foo2 = foo;
var bar2 = bar;
foo = [];
bar.length = 0;
console.log(foo, bar, foo2, bar2);

//[] [] [1, 2, 3] []

标签:两种,list,数组,清空,var,foo,empty
From: https://www.cnblogs.com/fdxjava/p/17930382.html

相关文章

  • 后端技术:Redis进行数据缓存的两种方法
    在fastapi项目中Redis进行数据缓存的两种不同的方法的demo第一种方法:通过FastAPI应用状态准备文件:models/redis.py为fastapi的数据库模型文件importosimportaioredisfromaioredisimportRedisasyncdefsys_cache()->Redis:"""系统缓存:return:cac......
  • 使用pack函数输出数组中满足条件元素的索引
    programmain_test  implicitnone    real,dimension(5)::arr1,arr2  LOGICAL,dimension(5)::ad,ab,ac,tot  INTEGER,dimension(:),allocatable::arr3  INTEGER::i  arr1=[1.0,2.3,-0.5,3.3,-1.6]  arr2=[1.0,-5......
  • 后缀数组(SA)
    终于刷完网络流后准备继续做sa,发现自己忘完了,于是来写个博客。应用用\(O(nlogn)\)将字符串后缀排序,以找到优美的性质概念两个数组:\(sa\)和\(rk\)\(sa_i\)表示将字符串后缀排序后,排名为\(i\)的后缀的开头字母在原串的位置\(rk_i\)表示后缀\(i\)的排名满足性质:\(sa[rk[i]]=r......
  • Day40 数组的使用
    数组的使用1.普通的for循环packagecom.baixiaofan.array;publicclassArrayDemo03{publicstaticvoidmain(String[]args){int[]arrays={1,2,3,4,5};//打印全部数组元素for(inti=0;i<arrays.length;i++){Sys......
  • Day39 数组基本特点及下标越界,小结
    数组基本特点及下标越界,小结数组的4个基本特点:1.其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2.其元素必须是相同类型,不允许出现混合类型。3.数组中的元素可以是任何数据类型,包括基本类型和引用类型。4.数组变量属引用类型,数组也可以看成是对象,数组中的每个元......
  • 杨辉三角的问题,借助二维数组的方法来解决。
    1publicclasscode1{2publicstaticvoidmain(String[]args){3int[][]x=newint[6][6];4for(inti=0;i<x.length;i++){5x[i][0]=1;6x[i][i]=1;78}9for(inti......
  • NDK-以十六进制字符串的形式打印char[]数组到logcat
    NDK-以十六进制字符串的形式打印char[]数组到logcat1.在Java中打印publicstaticStringconvertByteArr2String(byte[]bArr){StringBuilderbuilder=newStringBuilder();for(inti=0;i<bArr.length;i++){builder.append(String.format(Locale......
  • C#深度理解:数组、集合、哈希、字典、堆、栈 优缺点
    一、数组1、Array固定数组优点:1).快速访问:数组通过索引来访问元素,访问速度非常快,因为可以通过索引进行直接定位。2).内存连续存储:数组在内存中以连续的方式存储元素,这样有助于提高数据的读取和写入效率。3).多维支持:C#中的数组支持多维(二维、三维等)数据结构,可以用于表示......
  • 非动态数组版本下的筛选
    问题:一对多查找(筛选)的结果需要横向排列,但是表格暂时不支持动态数组。右拉下拉公式解决:{=IFERROR(INDEX(FILTER($E:$E,$D:$D=$G2),COLUMN(A1)),"")}公式中的Filter部分筛选出满总D列中等产于G2对应E列的内容,其结果是多个单元格组成的数组。使用Index提取数组中的内容,第二参数用Colum......
  • js 把对象存入数组中
    js把对象存入数组中  varparams=[];varinfo={"张三":"21","李四":"32","王五":"14","小红":"31","小兰":"24",......