這篇文章主要介紹“javascript數(shù)組拍平方法有哪些”,在日常操作中,相信很多人在javascript數(shù)組拍平方法有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”javascript數(shù)組拍平方法有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
沁源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
下面筆者將為大家演示一下,將一個(gè)多維數(shù)組拍平成一個(gè)一維數(shù)組的兩種方法。
首先是第一種方法,遞歸處理,代碼如下:
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]], [333, 4444] ]; function product() { // 1、創(chuàng)建一個(gè)空數(shù)組, var newarr = []; ///2、并且返回一個(gè)函數(shù),函數(shù)參數(shù)為要拍平的數(shù)組 return function flatten(arr) { // 3、循環(huán)數(shù)組,判斷每一項(xiàng),不為輸?shù)脑拰⑵淙雗ewarr // 若為數(shù)組,遞歸調(diào)用 faltten,并將結(jié)果與newarr合并 for (var t of arr) { if (!Array.isArray(t)) { newarr.push(t); } else { newarr.concat(flatten(t)) } } return newarr } } var flatten = product(); console.log(flatten(arr))
執(zhí)行結(jié)果為:
上面這這種方法比較中規(guī)中矩,代碼詳解見(jiàn)注釋?zhuān)旅孢@種方法運(yùn)用到了javascript語(yǔ)言的一些新特性,代碼如下:
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]], [333, 4444] ]; function flatten(arr){ return arr.reduce(function(pre,cur){ if(!Array.isArray(cur)){ return [...pre,cur]; }else{ return [...pre,...flatten(cur)] } },[]) } console.log(flatten(arr))
上面代碼中用了ES6的一個(gè)新特性擴(kuò)展云算法 “...”,“[...abc,...fff]”其作用相當(dāng)于abc.concat(fff),這種用法更加直觀明了,還有就是運(yùn)用了reduce方法。reduce是javascript語(yǔ)言中數(shù)組的一個(gè)方法。
數(shù)組調(diào)用recduce方法時(shí),可以傳遞兩個(gè)參數(shù),第一個(gè)參數(shù)為回調(diào)函數(shù),第二個(gè)參數(shù)為一個(gè)初始值?;卣{(diào)函數(shù)中需要傳遞兩個(gè)參數(shù),第一個(gè)參數(shù)為每次執(zhí)行函數(shù)的返回值,第二個(gè)參數(shù)為當(dāng)前索引對(duì)應(yīng)數(shù)組的值。reduce的第二個(gè)參數(shù)是可以省略的,省略的話,回調(diào)函數(shù)第一次調(diào)用的參數(shù)為數(shù)組的第一項(xiàng)和第二項(xiàng)的值,如果沒(méi)有省略,回調(diào)函數(shù)的第一個(gè)參數(shù)就是這個(gè)初始值。上面的例子,reduce的第二個(gè)參數(shù)設(shè)置了一個(gè)空數(shù)組。
到此,關(guān)于“javascript數(shù)組拍平方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)名稱:javascript數(shù)組拍平方法有哪些
標(biāo)題URL:http://muchs.cn/article16/ghejdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)