下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JavaScript模擬數(shù)組合并concat_ 這篇文章主要介紹了JavaScript模擬數(shù)組合并concat的相關(guān)資料,需要的伴侶可以參考下 定義和用法 concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。 該方法不會(huì)轉(zhuǎn)變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。 語法 arrayObject.concat(arrayX,arrayX,.,arrayX) 參數(shù)描述arrayX必需。該參數(shù)可以是具體的值,也可以是數(shù)組對象??梢允侨我舛鄠€(gè)。 返回值 返回一個(gè)新的數(shù)組。該數(shù)組是通過把全部 arrayX 參數(shù)添加到 arrayObject 中生成的。假如要進(jìn)行 concat() 操作的參數(shù)是數(shù)組,那么
2、添加的是數(shù)組中的元素,而不是數(shù)組 。 我們有兩個(gè)這樣的數(shù)組 var arr1 = 1,2,3; var arr2 = 4,5,6; 任務(wù):合并成這樣,請至少供應(yīng)兩種思路。 var arr1 = 1,2,3,4,5,6; 思路一:我們可以把其次個(gè)數(shù)組里面的值挨個(gè)添加到第一個(gè)數(shù)組的末尾。 1:數(shù)組怎么添加內(nèi)容 ? | push | shift 2:怎么向數(shù)組最終一個(gè)索引添加值? push | 數(shù)組.length 3:怎么挨個(gè)向數(shù)組一添加內(nèi)容? for 4: for循環(huán)多少次? 你要添加多少就循環(huán)多少次,也就是arr2的長度 5: 要添加什么內(nèi)容?arr2里面的值,怎么獵取,arr? 代碼實(shí)現(xiàn): v
3、ar arr1 = 1,2,3; var arr2 = 4,5,6; for(var i=0;iarr2.length;i+) arr1.push(arr2i); console.log(arr1); /1, 2, 3, 4, 5, 6 問題來了,原生js供應(yīng)的concat方法不會(huì)修改原數(shù)組(arr1)的內(nèi)容,而是返回一個(gè)新數(shù)組。 分析:既然是要返回值,那我們可以定義一個(gè)函數(shù),然后再定義一個(gè)變量,這個(gè)變量來接收我們添加好的值,但是我們會(huì)一個(gè)問題,那就是不能在arr1上面push內(nèi)容了,不然還是會(huì)修改原數(shù)組的內(nèi)容。于是我覺得要把原數(shù)組復(fù)制一份,但是又有一個(gè)問題,就是對象是引用類型,簡潔來說雖然我
4、們可以把數(shù)組1復(fù)制到一個(gè)變量中,但是假如我用push或者的形式修改里面的值,或者添加,那么我們的原數(shù)組也會(huì)被修改,(假如你不知道什么是引用類型,可以去看我博客的第一頁或者在其次頁)這不是我們想要的結(jié)果,但是我們必需復(fù)制一份arr1。此時(shí)你有什么解決方法? 解決數(shù)組引用問題: for(var i=0;iarr1.length;i+) arr3i = arr1i; 我的思路是把數(shù)組1的值挨個(gè)的添加到arr3這個(gè)數(shù)組中,此時(shí)的arr3是這樣的 console.log(arr3) /1, 2, 3 任務(wù):在這個(gè)新的數(shù)組arr3中添加arr2的所以值,方法和第一步一樣,假如遺忘了回頭看看。 代碼實(shí)現(xiàn):
5、var arr1 = 1,2,3; var arr2 = 4,5,6; var arr3 = ; for(var i=0;iarr1.length;i+) arr3i = arr1i; for(var i=0;iarr2.length;i+) arr3.push(arr2i); console.log(arr3); 問題:雖然這個(gè)已經(jīng)實(shí)現(xiàn)了數(shù)組的合并,但是我每次合并都要重新寫一份,那樣太麻煩,于是我們得想個(gè)方法把它封裝成一個(gè)函數(shù),下次我們要用的時(shí)候調(diào)用它就行。 var arr1 = 1,2,3; var arr2 = 4,5,6,7; function Concat(arr1,arr2) va
6、r arr3 = ; for(var i=0;iarr1.length;i+) arr3i = arr1i; for(var i=0;iarr2.length;i+) arr3.push(arr2i); return arr3; console.log(Concat(arr1,arr2); 思路二: 分析:把a(bǔ)rr1和arr2都轉(zhuǎn)換成字符串,然后將這兩段字符串相加得到一個(gè)組合,然后再把這個(gè)字符串轉(zhuǎn)成數(shù)組。 代碼實(shí)現(xiàn): var arr1 = 1,2,3; var arr2 = 4,5,6,7,8,9; var arr3 = (arr1.join(,)+,+arr2.join(,).split(,
7、); 出了點(diǎn)小問題,這個(gè)這個(gè)數(shù)組里面的值是字符串了。 1, 2, 3, 4, 5, 6, 7, 8, 9 解決思路:遍歷這個(gè)數(shù)組,挨個(gè)把他們轉(zhuǎn)換成數(shù)字。 var arr1 = 1,2,3; var arr2 = 4,5,6,7,8,9; var arr3 = (arr1.join(,)+,+arr2.join(,).split(,); for(var i=0;iarr3.length;i+) arr3i = +arr3i; console.log(arr3); 課外擴(kuò)展:繼承版 var arr1 = 1,2,3; var arr2 = 4,5,6,7,8,9; Atotype.Concat = function(arr) var arr3 = ; for(var i=0;ithis.length;i+) arr3i = thisi; for(var i=0;iarr.length;i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)房保溫地面橋架施工方案
- 小流域植物措施施工方案
- 脫硫塔防腐施工方案
- 鐵路放電施工方案
- 云南室外拼裝地板施工方案
- 皖河大橋施工方案
- 英倫風(fēng)格庭院施工方案
- 金華防滑路面彩色施工方案
- 舊樓樓頂防水改造施工方案
- 浙江單位停車棚施工方案
- 病理科醫(yī)院感染控制
- 2024年電信綜合部辦公室主任年度述職報(bào)告(四篇合集)
- 購銷合同電子版完整版
- 福建省福州市延安中學(xué)2023-2024學(xué)年八年級上學(xué)期期末物理模擬試卷+
- 2024年度醫(yī)院肝膽外科實(shí)習(xí)生帶教計(jì)劃課件
- 微機(jī)原理與接口技術(shù)考試試題及答案(綜合-必看)
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項(xiàng)目建議書
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
評論
0/150
提交評論