这取决于阵列的长度 . 如果数组长度<= 1,000,000, slice 和 concat 方法大约需要相同的时间 . 但是当你给出更广泛的范围时, concat 方法获胜 .

例如,尝试以下代码:

var original_array = [];

for(var i = 0; i < 10000000; i ++) {

original_array.push( Math.floor(Math.random() * 1000000 + 1));

}

function a1() {

var dup = [];

var start = Date.now();

dup = original_array.slice();

var end = Date.now();

console.log('slice method takes ' + (end - start) + ' ms');

}

function a2() {

var dup = [];

var start = Date.now();

dup = original_array.concat([]);

var end = Date.now();

console.log('concat method takes ' + (end - start) + ' ms');

}

function a3() {

var dup = [];

var start = Date.now();

for(var i = 0; i < original_array.length; i ++) {

dup.push(original_array[i]);

}

var end = Date.now();

console.log('for loop with push method takes ' + (end - start) + ' ms');

}

function a4() {

var dup = [];

var start = Date.now();

for(var i = 0; i < original_array.length; i ++) {

dup[i] = original_array[i];

}

var end = Date.now();

console.log('for loop with = method takes ' + (end - start) + ' ms');

}

function a5() {

var dup = new Array(original_array.length)

var start = Date.now();

for(var i = 0; i < original_array.length; i ++) {

dup.push(original_array[i]);

}

var end = Date.now();

console.log('for loop with = method and array constructor takes ' + (end - start) + ' ms');

}

a1();

a2();

a3();

a4();

a5();

如果将original_array的长度设置为1,000,000,则 slice 方法和 concat 方法将花费大致相同的时间(3-4 ms,具体取决于随机数) .

如果将original_array的长度设置为10,000,000,则 slice 方法需要超过60 ms, concat 方法需要超过20 ms .

java数组复制用for_在JavaScript中复制数组的最快方法 - 切片与'for'循环相关推荐

  1. 在JavaScript中复制数组的最快方法-切片与“ for”循环

    本文翻译自:Fastest way to duplicate an array in JavaScript - slice vs. 'for' loop In order to duplicate a ...

  2. 回顾java数组复制

    在写这篇文章之前,也看了一些别人写的,基本上都是大同小异.文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅. 首先,简单想一下这个问题:为什么要复制数组? 我的个人理解:在我们 ...

  3. JavaScript中的 inludes 和 indexOf 方法 | 判断字符串或数组中是否存在对应的元素| 相同点与不同点 | 代码详解

    目录 JavaScript中的inludes和indexOf方法 1.数组中的includes和indexOf方法比较 1.1 函数返回值的不同 1.2 函数第二个参数--开始查找的位置 1.3 in ...

  4. php节点对象,JavaScript_JavaScript中访问节点对象的方法有哪些如何使用,JavaScript中访问节点对象的方法 - phpStudy...

    JavaScript中访问节点对象的方法有哪些如何使用 JavaScript中访问节点对象的方法有哪些? var obj = document.getElementById('fdafda'); va ...

  5. 什么是在JavaScript中扩展错误的好方法?

    本文翻译自:What's a good way to extend Error in JavaScript? I want to throw some things in my JS code and ...

  6. html escape函数,JavaScript中escape()函数的使用方法

    导语:我们在传递参数时,为了避免服务器端出现乱码,常常会要用到编码函数,urlencode.HtmlEncode.base64_encode等.本文给大家详细讲解JavaScript中escape() ...

  7. java数组复制的方式和效率比较

    java中,数组的复制有以下三种方式: 1. 调用System.arraycopy(Arrays.copyOfRange可以当作第四种,但是底层调用的是System.arraycopy,所以,认为是同 ...

  8. java数组复制_Java自学-数组 复制数组

    Java 如何复制数组 数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src ...

  9. java+script+当前日期_如何在JavaScript中获取当前日期?

    如何在JavaScript中获取当前日期? #1楼 您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法. #2楼 如果您想对日期格式进行更多的粒度控制,我强烈建议您查看 ...

最新文章

  1. Luogu P5469 [NOI2019]机器人 (DP、多项式)
  2. SAP ABAP SICF事务码和SAP Hybris的链式过滤器filter chain
  3. 路床灰土计算机控制,亳阜高速公路路床灰土施工方案
  4. iOS-高仿支付宝手势解锁(九宫格)
  5. python3 logging模块中文乱码_Python logging模块写入中文出现乱码
  6. Android 怎么使用Bitmap+Canvas 自适应屏幕
  7. html字体及文本样式设置
  8. 一次电子罗盘+GPS智能转舵小车
  9. ubuntu20.04安装交叉编译工具链流程
  10. MySQL中文乱码解决方案
  11. IPtable 工作原理
  12. EGO Swarm翻译
  13. Js实现炫酷随机抽人
  14. UML需求分析步骤实例解析
  15. 自己做量化交易软件(10)通通量化AI框架的数据获取与格式
  16. E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?(解决方法)
  17. Office自定义功能区各功能图标间隔太大,与之前排版不一样,如何减少间隔距离?
  18. 机器学习深度学习加强学习_我如何在9个月内学习深度学习
  19. 记录(Record)
  20. 【深度推荐算法】DataWhale组队学习Task01: DeepCrossing

热门文章

  1. SAP CRM Fiori note automatic delete deletion scenario
  2. SAP CRM material上传调试
  3. 在nodejs环境里使用浏览器环境下的document对象
  4. 如何查找UI5框架的BSP应用名称
  5. 在SAP CRM webclient ui右上角显示系统时间
  6. ckfinder 图片预览 有的显示有的不显示_Python学习之图片显示
  7. 【python】利用python的tkinter-canvas函数绘制哆啦A梦过程详解(附源码)
  8. 冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...
  9. 绑定dictionary 给定关键字不再字典中_VBA数组与字典解决方案第51讲:字典嵌套及二级下拉菜单的制作...
  10. python可以写安卓应用吗_python可以编写android程序吗?