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)存進(jìn)行了重寫而已,沒有重定向和不必要的內(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)存進(jìn)行了重寫而已,沒有重定向和不必要的內(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ù)組進(jìn)行合并的方法
- 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)文章
cocos creator Touch事件應(yīng)用(觸控選擇多個子節(jié)點的實例)
下面小編就為大家?guī)硪黄猚ocos creator Touch事件應(yīng)用(觸控選擇多個子節(jié)點的實例)。小編覺得挺不錯的,現(xiàn)在就想給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09JavaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法
下面小編就為大家?guī)硪黄狫avaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06mockjs,json-server一起搭建前端通用的數(shù)據(jù)模擬框架教程
下面小編就為大家分享一篇mockjs,json-server一起搭建前端通用的數(shù)據(jù)模擬框架教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12