方式1: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>

方式2:给数组的length赋值为0

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

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

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

方式3:直接赋予新数组 []

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

这种方式为将arr重新复制为空数组,之前的数组如果没有被引用,将等待垃圾回收。

效率比较:

效率测试代码如下:

<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>

测试结果:

splice: 0.010986328125ms
length: 0.009033203125ms
赋值[]: 0.024169921875ms

多次测试发现第二种方式最快,第一种其次,大数据量下 第三种最慢。

测试结果可能不严谨。大家仅做参考。

js清空数组的方法的更多相关文章

  1. JS实现数组去重方法大总结

    js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...

  2. JavaScript -- 时光流逝(二):js中数组的方法

    JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...

  3. 转:js清空数组

    方式1,splice 1 2 3 var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 Array[0],空数组 ...

  4. IOS开发 清空数组正确方法

    NSArray以及NSMutableArray 在Objc中的两种数组(不可变数组和可变数组), 在日常开发中,经常会遇到需要清空数组的情况,很多人下意识的会想到nil这个方法,这里是不提倡的.因为如 ...

  5. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  6. js清空数组

    js-清空array数组 两种实现方式: 1.splice:删除元素并添加新元素,直接对数组进行修改,返回含有被删除元素的数组. arrayObject.splice(index,howmany,el ...

  7. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  8. JS实现数组去重方法总结(六种方法)

    方法一: 双层循环,外层循环元素,内层循环时比较值 如果有相同的值则跳过,不相同则push进数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Array. ...

  9. 浅谈JS的数组遍历方法

    用过Underscore的朋友都知道,它对数组(集合)的遍历有着非常完善的API可以调用的,_.each()就是其中一个.下面就是一个简单的例子: var arr = [1, 2, 3, 4, 5]; ...

随机推荐

  1. Center a website:网页居中

    inside the <body> tags, using a "wrapper" div to control the whole section. HTML: &l ...

  2. 利用MAT玩转JVM内存分析(一)

    本文首发于公众号:javaadu 尽管JVM提供了自动内存管理的机制,试图降低程序员的开发门槛,确实也实现了这一目标,在日常开发中,我们一般都不需要关心对象的内存释放.JVM大部分都是使用trace算 ...

  3. mysql 8 nodejs连不上

    https://www.jianshu.com/p/bf37e0bc7080 alter user 'root'@'localhost' identified with mysql_native_pa ...

  4. jquery ajax跨域请求后台的简单例子

    一.简介AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简 ...

  5. 基于Spring和Mybatis拦截器实现数据库操作读写分离

    首先需要配置好数据库的主从同步: 上一篇文章中有写到:https://www.cnblogs.com/xuyiqing/p/10647133.html 为什么要进行读写分离呢? 通常的Web应用大多数 ...

  6. Nginx/LVS/HAProxy 负载均衡软件的优缺点详解

    Nginx/LVS/HAProxy 负载均衡软件的优缺点详解   Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验 ...

  7. spring的核心组件及作用(一)

    Spring的核心组件有: Context     Core     Bean. 如果要在这三个核心组件上挑出一个最核心的组件,那就是Bean组件了. Spring的特性功能有:WEB ORM AOP ...

  8. AI - TensorFlow - 第一个神经网络(First Neural Network)

    Hello world # coding=utf-8 import tensorflow as tf import os os.environ[' try: tf.contrib.eager.enab ...

  9. 使用Identity Server 4建立Authorization Server (4)

    预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二 ...

  10. 在Coding上搭建Hexo个人博客

    先注册一个Coding账号,然后创建一个项目这个项目的名字应该是{username}.coding.me 安装hexo脚手架 $ npm install -g hexo-cli 建站 安装完 Hexo ...