Javascript连接多个数组不用concat来解决
2023-06-13 09:15:24 时间
第一种方法就是大家熟知的concat,但是这个方法有一个确定就是该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
如果只是想把一个新数组的元素加到现有数组中,我们还要为其重新赋值,其实存在有一点点资源的浪费。简单的说,我们要为新创建的数组分配新的内存空间,并且把arr1重新指向这个新内存地址,那么原来那个内存中的数组呢,嘿嘿那就要看浏览器能不能正确回收喽。
如下例:
复制代码代码如下:
如果只是想把一个新数组的元素加到现有数组中,我们还要为其重新赋值,其实存在有一点点资源的浪费。简单的说,我们要为新创建的数组分配新的内存空间,并且把arr1重新指向这个新内存地址,那么原来那个内存中的数组呢,嘿嘿那就要看浏览器能不能正确回收喽。
如下例:
vararr1=[1,2,3];
vararr1=arr1.concat([4,5]);
那么我们有没有什么好办法来避免这个资源消耗呢?
这里可以使用Javascript原生的apply方法来实现,首先看如下代码:
vararr1=[1,2,3];
arr1.push.apply(arr1,[4,5]);
这样就搞定了,此方法巧妙的运用了apply方法的特性(第二个参数是数组类型的多个)解放了push方法,push方法从本身只能传递多个值变成了可以传递数组,上述代码其实就等价于
arr1.push(4,5);
这样arr1还是那个arr1,只是内存进行了重写而已,没有重定向和不必要的内存溢出。
相关文章
- TypeScript(node)连接使用MySQL(JavaScript也一样)
- JavaScript学习总结(二十)——Javascript非构造函数的继承详解编程语言
- 实现JavaScript登录oracle的步骤(js登录连接oracle)
- 用javascript连接access数据库的方法
- javascript之DIV拖动类支持在FF下拖动,调用简单
- JavaScript入门·JavaScript具有全范围的运算符
- javascript关键字加亮加连接
- JavaScript在IE中“意外地调用了方法或属性访问”
- javascript获取鼠标的绝对位置event
- javascript走马灯效果的链接提示
- JavaScript学习笔记(七)字符串的连接
- Javascript对象中关于setTimeout和setInterval的this介绍
- 使用JavaScript构建JSON格式字符串实现步骤
- 你必须知道的JavaScript中字符串连接的性能的一些问题
- Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
- JavaScript通过正则表达式实现表单验证电话号码
- JavaScript中伪协议javascript:使用探讨