zoukankan      html  css  js  c++  java
  • 关于push和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方法。

    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) 

    结果:

    时间:

    1470
    465

    json什么时候用数组,如果频繁添加删除的尽量用json,因为这是数组的短处,如果频繁取数据的用数组。
  • 相关阅读:
    Dubbo框架——整体架构
    ie8不支持的数组方法
    前端面试问题
    Cookie和WebStorage的区别
    flex部局 API
    组合继承介绍
    克隆节点
    键盘事件
    js动态创建元素和删除
    js中的节点属性 和上下级访问关系
  • 原文地址:https://www.cnblogs.com/zengxuelan/p/13037530.html
Copyright © 2011-2022 走看看