欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript連接多個數(shù)組不用concat來解決

 更新時間:2014年03月24日 16:44:21   作者:  
這篇文章主要介紹了不用concat解決Javascript連接多個數(shù)組,需要的朋友可以參考下
第一種方法就是大家熟知的concat,但是這個方法有一個確定就是該方法不會改變現(xiàn)有的數(shù)組,而僅僅會返回被連接數(shù)組的一個副本。

如果只是想把一個新數(shù)組的元素加到現(xiàn)有數(shù)組中,我們還要為其重新賦值,其實(shí)存在有一點(diǎn)點(diǎn)資源的浪費(fèi)。簡單的說,我們要為新創(chuàng)建的數(shù)組分配新的內(nèi)存空間,并且把a(bǔ)rr1重新指向這個新內(nèi)存地址,那么原來那個內(nèi)存中的數(shù)組呢,嘿嘿 那就要看瀏覽器能不能正確回收嘍。

如下例:
復(fù)制代碼 代碼如下:

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

那么我們有沒有什么好辦法來避免這個資源消耗呢?

這里可以使用Javascript原生的apply方法來實(shí)現(xiàn),首先看如下代碼:
復(fù)制代碼 代碼如下:

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

這樣就搞定了,此方法巧妙的運(yùn)用了apply方法的特性(第二個參數(shù)是數(shù)組類型的多個)解放了push方法, push方法從本身只能傳遞多個值變成了可以傳遞數(shù)組, 上述代碼其實(shí)就等價于
復(fù)制代碼 代碼如下:

arr1.push(4,5);

這樣arr1還是那個arr1,只是內(nèi)存進(jìn)行了重寫而已,沒有重定向和不必要的內(nèi)存溢出。

相關(guān)文章

最新評論