Javascript連接多個數(shù)組不用concat來解決
更新時間:2014年03月24日 16:44:21 作者:
這篇文章主要介紹了不用concat解決Javascript連接多個數(shù)組,需要的朋友可以參考下
第一種方法就是大家熟知的concat,但是這個方法有一個確定就是該方法不會改變現(xiàn)有的數(shù)組,而僅僅會返回被連接數(shù)組的一個副本。
如果只是想把一個新數(shù)組的元素加到現(xiàn)有數(shù)組中,我們還要為其重新賦值,其實存在有一點點資源的浪費。簡單的說,我們要為新創(chuàng)建的數(shù)組分配新的內(nèi)存空間,并且把arr1重新指向這個新內(nèi)存地址,那么原來那個內(nèi)存中的數(shù)組呢,嘿嘿 那就要看瀏覽器能不能正確回收嘍。
如下例:
var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);
那么我們有沒有什么好辦法來避免這個資源消耗呢?
這里可以使用Javascript原生的apply方法來實現(xiàn),首先看如下代碼:
var arr1= [1,2,3];
arr1.push.apply(arr1,[4,5]);
這樣就搞定了,此方法巧妙的運用了apply方法的特性(第二個參數(shù)是數(shù)組類型的多個)解放了push方法, push方法從本身只能傳遞多個值變成了可以傳遞數(shù)組, 上述代碼其實就等價于
arr1.push(4,5);
這樣arr1還是那個arr1,只是內(nèi)存進行了重寫而已,沒有重定向和不必要的內(nèi)存溢出。
如果只是想把一個新數(shù)組的元素加到現(xiàn)有數(shù)組中,我們還要為其重新賦值,其實存在有一點點資源的浪費。簡單的說,我們要為新創(chuàng)建的數(shù)組分配新的內(nèi)存空間,并且把arr1重新指向這個新內(nèi)存地址,那么原來那個內(nèi)存中的數(shù)組呢,嘿嘿 那就要看瀏覽器能不能正確回收嘍。
如下例:
復(fù)制代碼 代碼如下:
var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);
那么我們有沒有什么好辦法來避免這個資源消耗呢?
這里可以使用Javascript原生的apply方法來實現(xiàn),首先看如下代碼:
復(fù)制代碼 代碼如下:
var arr1= [1,2,3];
arr1.push.apply(arr1,[4,5]);
這樣就搞定了,此方法巧妙的運用了apply方法的特性(第二個參數(shù)是數(shù)組類型的多個)解放了push方法, push方法從本身只能傳遞多個值變成了可以傳遞數(shù)組, 上述代碼其實就等價于
復(fù)制代碼 代碼如下:
arr1.push(4,5);
這樣arr1還是那個arr1,只是內(nèi)存進行了重寫而已,沒有重定向和不必要的內(nèi)存溢出。
您可能感興趣的文章:
- JS數(shù)組合并push與concat區(qū)別分析
- js嵌套的數(shù)組扁平化:將多維數(shù)組變成一維數(shù)組以及push()與concat()區(qū)別的講解
- JavaScript使用concat連接數(shù)組的方法
- JavaScript字符串對象的concat方法實例(用于連接兩個或多個字符串)
- JS數(shù)組方法concat()用法實例分析
- JavaScript中使用concat()方法拼接字符串的教程
- 深入理解javascript中concat方法
- javascript使用 concat 方法對數(shù)組進行合并的方法
- js采用concat和sort將N個數(shù)組拼接起來的方法
- javascript中數(shù)組的concat()方法使用介紹
- javascript concat數(shù)組累加 示例
- JS Array創(chuàng)建及concat()split()slice()的使用方法
- 淺談JavaScript的push(),pop(),concat()方法
- JavaScript模擬數(shù)組合并concat
- JS數(shù)組降維的實現(xiàn)Array.prototype.concat.apply([], arr)
- JavaScript中concat復(fù)制數(shù)組方法淺析
- javascript數(shù)組中的concat方法和splice方法
- JavaScript的concat方法實例代碼(數(shù)組連接)
相關(guān)文章
Immutable 在 JavaScript 中的應(yīng)用
在 JavaScript 中,對象是引用類型的數(shù)據(jù),其優(yōu)點在于頻繁的修改對象時都是在原對象的基礎(chǔ)上修改,并不需要重新創(chuàng)建,這樣可以有效的利用內(nèi)存,不會造成內(nèi)存空間的浪費,對象的這種特性可以稱之為 Mutable,中文的字面意思是「可變」2016-05-05
JavaScript 中 avalon綁定屬性總結(jié)
avalon是前端MVVM框架,在js中經(jīng)常會用到。這篇文章主要介紹了JavaScript 中 avalon綁定屬性總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-10-10
JS實現(xiàn)根據(jù)文件字節(jié)數(shù)返回文件大小的方法
這篇文章主要介紹了JS實現(xiàn)根據(jù)文件字節(jié)數(shù)返回文件大小的方法,涉及javascript數(shù)值計算與字符串操作相關(guān)技巧,需要的朋友可以參考下2016-08-08

