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 作為深度,展開(kāi)任意深度的嵌套數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS面向?qū)ο缶幊袒A(chǔ)篇(一) 對(duì)象和構(gòu)造函數(shù)實(shí)例詳解
這篇文章主要介紹了JS面向?qū)ο缶幊虒?duì)象和構(gòu)造函數(shù),結(jié)合實(shí)例形式詳細(xì)分析了JS面向?qū)ο缶幊虒?duì)象和構(gòu)造函數(shù)具體概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
javascript刪除數(shù)組元素并且數(shù)組長(zhǎng)度減小的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)javascript刪除數(shù)組元素并且數(shù)組長(zhǎng)度減小的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02
微信小程序云開(kāi)發(fā)實(shí)現(xiàn)微信支付功能業(yè)務(wù)邏輯可靠
這篇文章主要介紹了微信小程序云開(kāi)發(fā)實(shí)現(xiàn)微信支付功能,云開(kāi)發(fā)來(lái)開(kāi)發(fā)微信小程序時(shí),如何實(shí)現(xiàn)微信支付,并且保證業(yè)務(wù)邏輯可靠,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-05-05
利用JavaScript差集實(shí)現(xiàn)一個(gè)對(duì)比小工具
這篇文章主要給大家介紹了關(guān)于利用JavaScript差集實(shí)現(xiàn)一個(gè)對(duì)比小工具的相關(guān)資料,雖然實(shí)現(xiàn)的界面不是太好看,但好在功能實(shí)用即可,需要的朋友可以參考下2021-07-07
'webpack-dev-server'?不是內(nèi)部或外部命令也不是可運(yùn)行的程序?或批處理文件的最
這篇文章主要介紹了'webpack-dev-server'?不是內(nèi)部或外部命令也不是可運(yùn)行的程序?或批處理文件的最新解決方法,文中給大家補(bǔ)充介紹了webpack-dev-server的介紹與用法,需要的朋友可以參考下2023-02-02
JS獲取瀏覽器地址欄的多個(gè)參數(shù)值的任意值實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了JS獲取瀏覽器地址欄的多個(gè)參數(shù)值的任意值,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的的朋友參考下吧2018-07-07

