首页 > 其他分享 >JS中使用new Array()与使用Array.from()方式创建二维数组的性能比较

JS中使用new Array()与使用Array.from()方式创建二维数组的性能比较

时间:2024-11-23 12:14:15浏览次数:7  
标签:10 console JS ms new Array 100

比较 1,单次创建小额数组

1. 通过new Array()方式

function t() {
    console.time();
    new Array(100).fill().map(() => new Array(10));
    console.timeEnd();
}

 执行5次耗时:

  1. 0.078125 ms
  2. 0.050048828125 ms
  3. 0.0380859375 ms
  4. 0.031005859375 ms
  5. 0.093017578125 ms

2. 通过Array.from()方式

function t() {
    console.time();
    Array.from({ length: 100 }, () => new Array(10));
    console.timeEnd();
}

 执行5次耗时:

  1. 0.115966796875 ms
  2. 0.045166015625 ms
  3. 0.0458984375 ms
  4. 0.046142578125 ms
  5. 0.09912109375 ms

3. 通过朴素for循环方式

function t() {
    console.time();
    const a = new Array(100);
    for (let i = 0; i < 100; i++) {
        a[i] = new Array(10);
    }
    console.timeEnd();
}

 执行5次耗时:

  1. 0.05908203125 ms
  2. 0.047119140625 ms
  3. 0.02001953125 ms
  4. 0.016845703125 ms
  5. 0.02099609375 ms

总结:以粗略的平均耗时进行从快到慢排名,方式3(0.033ms) -> 方式1(0.058ms) -> 方式2(0.070ms)。

 

比较 2,多次创建小额数组

1. 通过new Array()方式

function test() {
    console.time();
    for (let i = 0; i < 10 ** 5; i++) {
        new Array(100).fill().map(() => new Array(10));
    }
    console.timeEnd();
}

 执行5次耗时:

  1. 78.958984375 ms
  2. 66.5771484375 ms
  3. 75.095947265625 ms
  4. 74.529052734375 ms
  5. 74.527099609375 ms

2. 通过Array.from()方式

function test() {
    console.time();
    for (let i = 0; i < 10 ** 5; i++) {
        Array.from({ length: 100 }, () => new Array(10));
    }
    console.timeEnd();
}

 执行5次耗时:

  1. 301.885009765625 ms
  2. 301.829833984375 ms
  3. 302.973876953125 ms
  4. 305.974853515625 ms
  5. 300.94482421875 ms

3. 通过朴素for循环方式

function test() {
    console.time();
    for (let i = 0; i < 10 ** 5; i++) {
        const a = new Array(100);
        for (let i = 0; i < 100; i++) {
            a[i] = new Array(10);
        }
    }
    console.timeEnd();
}

 执行5次耗时:

  1. 60.8369140625 ms
  2. 60.953125 ms
  3. 60.804931640625 ms
  4. 60.619873046875 ms
  5. 60.380859375 ms

总结:以粗略的平均耗时进行从快到慢排名,方式3(60.72ms) -> 方式1(73.94ms) -> 方式2(302.72ms)。

标签:10,console,JS,ms,new,Array,100
From: https://www.cnblogs.com/fanqshun/p/18564282

相关文章

  • Node.js 中 TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]
    使用导入断言解决错误“TypeError[ERR_IMPORT_ASSERTION_TYPE_MISSING]:Moduleneedsanimportassertionoftypejson”,例如importmyJsonfrom'./example.json'assert{type:'json'}。此语法指示模块是JSON并且不被执行。这是发生该错误的示例//⛔️TypeError[ERR......
  • js逆向实战之某数据平台响应数解密逻辑
    声明:本篇文章仅用于知识分享,不得用于其他用途网址:https://www.jinglingshuju.com/articles解密逻辑看触发的数据包。data一看就是加密的,全局搜索interceptors。在最后一处可以明显的看到有解密函数。打断点,刷新界面。跟响应数据中一致,找对地方了。关键代码如下。......
  • Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with
    一、现象在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Datatruncation:CannotcreateaJSONvaluefromastringwithCHARACTERSET'binary'.​‍报错信息:Cause:com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:......
  • 基于SpringBoot+MySQL+SSM+Vue.js的宠物猫售卖管理
    获取见最下方名片获取见最下方名片获取见最下方名片演示视频基于SpringBoot+MySQL+SSM+Vue.js的宠物猫售卖管理技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基......
  • NewStar re ezencrypt wp
    NewStarreezencryptwpjadx打开[外链图片转存中…(img-qiKfNETY-1729913193217)]发现加密,点进去[外链图片转存中…(img-q5cEWSnD-1729913193218)]发现先AES加密,key是title,然后Base64编码,让母后doEncCheck,我们没找到doEncCHeck的源码官解提到有native标签说明函......
  • C++ 内存管理 堆和栈、内存泄漏、内存分配、指针与内存、智能指针、malloc和free、new
    1.堆和栈的区别1.**管理方式**:-**栈**:自动管理。当函数调用时,局部变量会自动分配在栈上。函数执行完毕后,这些变量会自动释放。-**堆**:手动管理。程序员需要使用`new`来在堆上分配内存,并在不再需要时使用`delete`来释放。2.**使用方式和寿命**:-**栈**:用......
  • 【最新原创毕设】基于JSP+SSM的民宿预约平台+79197(免费领源码)可做计算机毕业设计JAVA
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状2系统分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统流程分析2.2.1添加信息流程2.2.2修改信息流程2.2.3删除信息流程2.3 系统功能分析2.3.1功能性分析2.3......
  • jspm基于Java web的在线餐饮管理系统的设计和实现(11862)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发......
  • Vue.js 投票排行榜:从零到完整实现详细教程” “新手友好:使用 Vue.js 构建一个实时投票
    效果图博客教程:使用Vue.js实现投票排行榜页面(详细步骤)在本篇博客教程中,我们将逐步带你实现一个投票排行榜页面,使用的是Vue.js框架。此项目适合前端开发新手,可以帮助你更好地理解Vue的基本功能和组件开发。目录项目介绍搭建项目基础结构实现榜单前3名展示实现倒计时功......
  • 计算机毕业设计项目推荐,个人知识管理系统 79004(开题答辩+程序定制+全套文案 )上万套实
    摘 要尽管我们每天面临的信息越来越多,信息过载与信息噪音越来越严重,但只要我们能充分利用个人知识管理技能,借助有效的个人知识管理软件相信战胜海量信息不再是困难。本课题在分析了个人知识管理现状以及对现有的个人知识管理网站进行研究比较的基础上,针对网络交流互助的特......