架构师

您现在的位置是:首页 > 程序人生 > 前端别闹

前端别闹

JS数组清空的几种方式,以及效率比较

架构师小跟班 2020-06-13 前端别闹
常用的方式有三种方式一:splice()函数格式:arrayObject.splice(index,howmany,element1,.....,elementX)解释:index:必选,规定从何处添加/删除元素。howmany:必选,规定应该删除多少

JS数组遍历的几种方式及性能对比:https://www.jiagou1216.com/life/front/529.html

JS数组清空常用的方式有三种。

方式一:splice()函数

格式:

arrayObject.splice(index,howmany,element1,.....,elementX)

解释:

index:必选,规定从何处添加/删除元素。

howmany:必选,规定应该删除多少元素。未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

element1:可选,规定要添加到数组的新元素。

举例:

<script type ="text/javascript">  
    var arr = [1,2,3,4];  
  arr.splice(0,arr.length);  
</script>

方式二:length=0

将数组的长度length赋值为0

原理:

数组的长度小于本身的length,数组中后面的元素将被截断。

数组的长度大于本身的length,将扩展数组长度,多的元素为undefined。

举例:

<script type ="text/javascript">  
    var arr = [1,2,3,4];  
    arr.length = 0;
</script>

方式三:arr=[]

将数组直接赋值为空数组。

原理:

这种方式为将arr重新赋值为空数组[],之前的数组没有被引用,将会被垃圾回收。

举例:

<script type ="text/javascript">  
  var arr = [1,2,3,4];  
  arr = [];
</script>

效率比较:

可以使用console.time()和console.timeEnd()方法打印方法执行时间。

经过多次测试,发现第二种方式是最快的,其次是splice方法,最慢的是[]。

测试代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>测试数组清空方法效率</h1>
<h2>
作者:架构师小跟班<br/>
链接:https://www.jiagou1216.com<br/>
类别:技术类综合网站<br/>
内容:原创博客,教程,源码,毕设等资源。<br/>
本站资源完全免费,无任何套路,仅限学习交流,请勿用于商业用途。<br/>
公众号:架构师小跟班。<br/>
</h2>
<script>
    var a = [];
    var b = [];
    var c = [];
    for(var i =0 ; i < 100000000;i++){
        a.push(i);
    }
    console.time('splice');
    a.splice(0,a.length); 
    console.timeEnd('splice');
    
    for(var i =0 ; i < 100000000;i++){
        b.push(i);
    }
    console.time('length');
    b.length = 0;
    console.timeEnd('length');
    
    for(var i =0 ; i < 100000000;i++){
        c.push(i);
    }
    console.time('[]');
    c = [];
    console.timeEnd('[]');
</script>
</body>
</html>




文章评论