java数组复制用for_在JavaScript中复制数组的最快方法 - 切片与'for'循环
这取决于阵列的长度 . 如果数组长度<= 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'循环相关推荐
- 在JavaScript中复制数组的最快方法-切片与“ for”循环
本文翻译自:Fastest way to duplicate an array in JavaScript - slice vs. 'for' loop In order to duplicate a ...
- 回顾java数组复制
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异.文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅. 首先,简单想一下这个问题:为什么要复制数组? 我的个人理解:在我们 ...
- JavaScript中的 inludes 和 indexOf 方法 | 判断字符串或数组中是否存在对应的元素| 相同点与不同点 | 代码详解
目录 JavaScript中的inludes和indexOf方法 1.数组中的includes和indexOf方法比较 1.1 函数返回值的不同 1.2 函数第二个参数--开始查找的位置 1.3 in ...
- php节点对象,JavaScript_JavaScript中访问节点对象的方法有哪些如何使用,JavaScript中访问节点对象的方法 - phpStudy...
JavaScript中访问节点对象的方法有哪些如何使用 JavaScript中访问节点对象的方法有哪些? var obj = document.getElementById('fdafda'); va ...
- 什么是在JavaScript中扩展错误的好方法?
本文翻译自:What's a good way to extend Error in JavaScript? I want to throw some things in my JS code and ...
- html escape函数,JavaScript中escape()函数的使用方法
导语:我们在传递参数时,为了避免服务器端出现乱码,常常会要用到编码函数,urlencode.HtmlEncode.base64_encode等.本文给大家详细讲解JavaScript中escape() ...
- java数组复制的方式和效率比较
java中,数组的复制有以下三种方式: 1. 调用System.arraycopy(Arrays.copyOfRange可以当作第四种,但是底层调用的是System.arraycopy,所以,认为是同 ...
- java数组复制_Java自学-数组 复制数组
Java 如何复制数组 数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src ...
- java+script+当前日期_如何在JavaScript中获取当前日期?
如何在JavaScript中获取当前日期? #1楼 您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法. #2楼 如果您想对日期格式进行更多的粒度控制,我强烈建议您查看 ...
最新文章
- Luogu P5469 [NOI2019]机器人 (DP、多项式)
- SAP ABAP SICF事务码和SAP Hybris的链式过滤器filter chain
- 路床灰土计算机控制,亳阜高速公路路床灰土施工方案
- iOS-高仿支付宝手势解锁(九宫格)
- python3 logging模块中文乱码_Python logging模块写入中文出现乱码
- Android 怎么使用Bitmap+Canvas 自适应屏幕
- html字体及文本样式设置
- 一次电子罗盘+GPS智能转舵小车
- ubuntu20.04安装交叉编译工具链流程
- MySQL中文乱码解决方案
- IPtable 工作原理
- EGO Swarm翻译
- Js实现炫酷随机抽人
- UML需求分析步骤实例解析
- 自己做量化交易软件(10)通通量化AI框架的数据获取与格式
- E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?(解决方法)
- Office自定义功能区各功能图标间隔太大,与之前排版不一样,如何减少间隔距离?
- 机器学习深度学习加强学习_我如何在9个月内学习深度学习
- 记录(Record)
- 【深度推荐算法】DataWhale组队学习Task01: DeepCrossing
热门文章
- SAP CRM Fiori note automatic delete deletion scenario
- SAP CRM material上传调试
- 在nodejs环境里使用浏览器环境下的document对象
- 如何查找UI5框架的BSP应用名称
- 在SAP CRM webclient ui右上角显示系统时间
- ckfinder 图片预览 有的显示有的不显示_Python学习之图片显示
- 【python】利用python的tkinter-canvas函数绘制哆啦A梦过程详解(附源码)
- 冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...
- 绑定dictionary 给定关键字不再字典中_VBA数组与字典解决方案第51讲:字典嵌套及二级下拉菜单的制作...
- python可以写安卓应用吗_python可以编写android程序吗?