OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Node.JS中用concat和push连接两个或多个数组的性能比较


分享到


分类 JS学习   关键字 JavaScript   发布 ourjs  1555299868703
注意 转载须保留原文链接,译文链接,作者译者等信息。  
JavaScript中连接两个数组成一旧新数组,常用concat方法,比如:

var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
var arr  = arr1.concat(arr2)
借用apply方法 ,push、splice也可和来连接数组。因为push没有创建新数组,如果想要保挂原对象的引用,可使用push方法。

那么两者在node.js的性能如何? 我们做了一组测试数据,两种分别测试100万次。

var testConcat = function(abc) {
  var arr1 = [1,2,3,-1]
  var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
  var arr  = arr1.concat(arr2)
}

var testPush = function(abc) {
  var arr1 = [1,2,3,-1]
  var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
  Array.prototype.push.apply(arr1, arr2)
}

var count = 1000000

var date = Date.now()
for (var i = 0; i < count; i++) {
    testConcat()
}
console.log(Date.now() - date)

var date = Date.now()
for (var i = 0; i < count; i++) {
    testPush()
}

console.log(Date.now() - date) 
结果:
$ node array.js
1470
465

由此可见,push比concat方法快3倍左右。因为push只是在原数组的基础上进行修改,所以会快一点。



评论 ( Beta版 )
  • #0 姜节令 1556249166143
    alert(document.cookie);alert(document.cookie);
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 配置TinyMCE网页文本编辑器不显示html head body等标签信息
  2. 判断是否为对象typeof abc == 'object' 与 instanceof 性能比较
  3. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - JS学习
  1. 判断是否为对象typeof abc == 'object' 与 instanceof 性能比较
  2. 配置TinyMCE网页文本编辑器不显示html head body等标签信息
  3. node.js中将console.log日志内容输出到文件
  4. typeof判断参数是否为undefined与全等判断法性能比较
  5. JavaScript不刷新查找当前网址上的querystring并修改查询字符串变量
  6. JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用
  7. JavaScript使用类似break机制中断forEach循环
  8. 用jQuery将JavaScript对象转换为querystring查询字符串
  9. bootstrap-datetimepicker时间日期范围选取组件使用说明及简单教程
  10. 用JavaScript实现basename获取路径中的文件名

 关键字 - JavaScript
  1. node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
  2. 少年,不要滥用箭头函数啊:JS中lambda表达式的优缺点和使用场景
  3. 用JavaScript获取当月第一天和最后一天
  4. 让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
  5. ES6中的Map与JSON的相互转化(序列和持久化)
  6. Facebook发布全新JavaScript引擎Hermes:越来越像Java字节码,JS要统一全端?
  7. 在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎
  8. 为什么我不建议你将JavaScript作为主力语言
  9. 使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制
  10. Node.JS中UDP打洞穿透内网路由,架设内网服务器技术详解及源码

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号