JavaScript中concat復(fù)制數(shù)組方法淺析
我們?cè)谛枰M(jìn)行數(shù)組復(fù)制的時(shí)候可能會(huì)想到以下的方法
代碼
var arr1 = [1,2,3,4,5]; var arr2 = []; arr2 = arr1; console.log(arr1); console.log(arr2);
執(zhí)行結(jié)果如下:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
在這個(gè)例子中,將數(shù)組arr1賦值給了另一個(gè)數(shù)組arr2。
查看執(zhí)行結(jié)果,似乎復(fù)制了數(shù)組的內(nèi)容并創(chuàng)建了相同的數(shù)組。
但是,由于數(shù)組是“引用類型”的數(shù)據(jù),因此它不會(huì)復(fù)制該值,而只是共享存儲(chǔ)該值的內(nèi)存的位置。
因此,我們編寫以下代碼
arr2.push(6); console.log(arr1); console.log(arr2);
執(zhí)行結(jié)果如下
[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
根據(jù)以上結(jié)果可以發(fā)現(xiàn)即使我們只給arr2添加新值6,但是數(shù)組arr1中也會(huì)添加一個(gè)6,這就是因?yàn)閮蓚€(gè)
數(shù)組都只引用存儲(chǔ)值的位置,如果更改任一數(shù)組中的數(shù)據(jù),兩者都會(huì)改變。
所以下面我們就來使用concat方法復(fù)制數(shù)組
我們來看具體示例
var arr1 = [1,2,3,4,5]; var arr2 = []; arr2 = arr1.concat(); arr2.push(6); console.log(arr1); console.log(arr2);
執(zhí)行結(jié)果如下
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 6]
要將另一個(gè)數(shù)組復(fù)制到數(shù)組arr2,只需要在復(fù)制源arr1中執(zhí)行concat()即可。
- JS數(shù)組合并push與concat區(qū)別分析
- js嵌套的數(shù)組扁平化:將多維數(shù)組變成一維數(shù)組以及push()與concat()區(qū)別的講解
- JavaScript使用concat連接數(shù)組的方法
- JavaScript字符串對(duì)象的concat方法實(shí)例(用于連接兩個(gè)或多個(gè)字符串)
- JS數(shù)組方法concat()用法實(shí)例分析
- JavaScript中使用concat()方法拼接字符串的教程
- 深入理解javascript中concat方法
- javascript使用 concat 方法對(duì)數(shù)組進(jìn)行合并的方法
- Javascript連接多個(gè)數(shù)組不用concat來解決
- js采用concat和sort將N個(gè)數(shù)組拼接起來的方法
- javascript中數(shù)組的concat()方法使用介紹
- javascript concat數(shù)組累加 示例
- JS Array創(chuàng)建及concat()split()slice()的使用方法
- 淺談JavaScript的push(),pop(),concat()方法
- JavaScript模擬數(shù)組合并concat
- JS數(shù)組降維的實(shí)現(xiàn)Array.prototype.concat.apply([], arr)
- javascript數(shù)組中的concat方法和splice方法
- JavaScript的concat方法實(shí)例代碼(數(shù)組連接)
相關(guān)文章
javascript 中iframe高度自適應(yīng)(同域)實(shí)例詳解
這篇文章主要介紹了javascript 中iframe高度自適應(yīng)(同域)實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05javascript學(xué)習(xí)筆記(七)利用javascript來創(chuàng)建和存儲(chǔ)cookie
今天把javascript如何用來創(chuàng)建及存儲(chǔ)cookie復(fù)習(xí)了一下,其中的一點(diǎn)體會(huì)拿出來和大家討論,懇請(qǐng)高手指點(diǎn)一二。2011-04-04js簡(jiǎn)單倒計(jì)時(shí)實(shí)現(xiàn)代碼
這篇文章主要介紹了js簡(jiǎn)單倒計(jì)時(shí)實(shí)現(xiàn)代碼,涉及JavaScript時(shí)間與日期的相關(guān)運(yùn)算技巧,需要的朋友可以參考下2016-04-04js實(shí)現(xiàn)的簡(jiǎn)練高效拖拽功能示例
這篇文章主要介紹了js實(shí)現(xiàn)的簡(jiǎn)練高效拖拽功能,通過對(duì)js鼠標(biāo)事件的擴(kuò)展實(shí)現(xiàn)拖拽效果,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-12-12IE關(guān)閉時(shí)判斷及AJAX注銷案例學(xué)習(xí)
當(dāng)關(guān)閉系統(tǒng)時(shí)會(huì)提示:你確定要退出系統(tǒng)嗎?退出請(qǐng)按'離開此頁'接下來將講解下IE關(guān)閉判斷及AJAX注銷,感興趣的你可不要錯(cuò)過了哈,希望本例對(duì)你學(xué)習(xí)ajax有所幫助2013-02-02由document.body和document.documentElement想到的
不知道大家對(duì)這個(gè)標(biāo)題有沒有想法,反正此前我一直把他們混為了一談。其實(shí)不然,首先需有個(gè)“標(biāo)準(zhǔn)”的概念。2009-04-04