• 技术文章 >web前端 >js教程

    Javascript连接多个数组不用concat来解决_javascript技巧

    2016-05-16 16:54:29原创487
    第一种方法就是大家熟知的concat,但是这个方法有一个确定就是该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    如果只是想把一个新数组的元素加到现有数组中,我们还要为其重新赋值,其实存在有一点点资源的浪费。简单的说,我们要为新创建的数组分配新的内存空间,并且把arr1重新指向这个新内存地址,那么原来那个内存中的数组呢,嘿嘿 那就要看浏览器能不能正确回收喽。

    如下例:
    复制代码 代码如下:

    var arr1 = [1,2,3];
    var arr1 = arr1.concat([4,5]);

    那么我们有没有什么好办法来避免这个资源消耗呢?

    这里可以使用Javascript原生的apply方法来实现,首先看如下代码:
    复制代码 代码如下:

    var arr1= [1,2,3];
    arr1.push.apply(arr1,[4,5]);

    这样就搞定了,此方法巧妙的运用了apply方法的特性(第二个参数是数组类型的多个)解放了push方法, push方法从本身只能传递多个值变成了可以传递数组, 上述代码其实就等价于
    复制代码 代码如下:

    arr1.push(4,5);

    这样arr1还是那个arr1,只是内存进行了重写而已,没有重定向和不必要的内存溢出。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:连接多数组 concat
    上一篇:jquery下拉select控件操作方法分享(jquery操作select)_jquery 下一篇:jqeury-easyui-layout问题解决方法_jquery
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 简单了解JavaScript数据结构与算法之栈• 11个可以提升效率的chrome调试技巧• 一文搞定JavaScript的节点操作• JavaScript类数组和可迭代对象的实现原理详解• 带你深入了解HTTP模块
    1/1

    PHP中文网