js多維數(shù)組降維的5種方法
多維數(shù)組降維也就是數(shù)組扁平化
數(shù)組扁平化的方法有很多種,但是我主要用五種,如下:
一,遞歸
// 一,遞歸 let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] let newArr = [] const getArr=(array)=>{ array.forEach((item)=>{ // 如果遍歷的元素不是一個(gè)數(shù)組 就把這個(gè)元素放到新數(shù)組中 // 反之 就進(jìn)行遞歸再次調(diào)用方法 Array.isArray(item) ? getArr(item) : newArr.push(item) }) } getArr(arr) console.log(newArr)
二,將多維數(shù)組轉(zhuǎn)為字符串,再轉(zhuǎn)化為一維數(shù)組
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] console.log(arr.join(',').split(','))
三,利用數(shù)組的方法
(使用 Infinity 作為深度,展開任意深度的嵌套數(shù)組)
Array.prototype.flat() let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] console.log(arr.flat(Infinity))
四、利用contact
var a = [1,[2],[3,4]] var result = [] for(var i=0; i<a.length; i++){ if(a[i].constructor == Array) { result = result.concat(a[i]) }else { result.push(a[i]) } } console.log(result)
五、利用擴(kuò)展運(yùn)算符
擴(kuò)展運(yùn)算符相當(dāng)于數(shù)組拆成最小單位了,
...[1,2,[3, 4]] 相當(dāng)于變成了 1,2, [3, 4]///[ ].concat(...a) 就相當(dāng)于 [ ].concat(1,2,[3,4])
var a = [1,[2],[3,4]] var result = [] result = [].concat(...a) console.log(result)
到此這篇關(guān)于js多維數(shù)組降維的5種方法的文章就介紹到這了,更多相關(guān)js多維數(shù)組降維內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js鼠標(biāo)點(diǎn)擊圖片切換效果實(shí)現(xiàn)代碼
這篇文章為大家分享了js鼠標(biāo)點(diǎn)擊圖片切換效果實(shí)現(xiàn)代碼,特別炫酷的效果,具有一定的參考價(jià)值,推薦給大家,感興趣的小伙伴們可以參考一下2015-11-11“增強(qiáng)js程序代碼的健壯性”之我見大量示例代碼
“增強(qiáng)js程序代碼的健壯性”之我見大量示例代碼...2007-05-05JS canvas實(shí)現(xiàn)畫板和簽字板功能
這篇文章主要為大家詳細(xì)介紹了JS canvas實(shí)現(xiàn)畫板和簽字板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02讓FireFox支持innerText的實(shí)現(xiàn)代碼
DHTML非標(biāo)準(zhǔn)屬性innerText在FireFox中的使用2009-12-12JavaScript開發(fā)時(shí)的五個(gè)注意事項(xiàng)
JavaScript開發(fā)時(shí)的五個(gè)注意事項(xiàng)講述了表單事件、鏈接、循環(huán)優(yōu)化、匿名函數(shù)、字符串連接等優(yōu)化技巧,需要的朋友可以參考一下2007-12-128個(gè)鮮為人知但很實(shí)用的Web?API用法總結(jié)
在?Web?API?中,有非常有用的對象、屬性和函數(shù)可用于執(zhí)行小到訪問?DOM?這樣的小任務(wù),大到處理音頻、視頻這樣的復(fù)雜任務(wù)。下面就帶大家一起來看看一些不常見但很實(shí)用的Web?API的用法2022-08-08js獲取或設(shè)置當(dāng)前窗口url參數(shù)的小例子
這篇文章介紹了js獲取或設(shè)置當(dāng)前窗口url參數(shù)的小例子,有需要的朋友可以參考一下2013-10-10