陣列扁平化

2021-09-29 03:29:37 字數 1042 閱讀 3349

// 編寫乙個程式,將陣列扁平化,並去除其中重複部分資料,

// 最終得到乙個公升序而且不重複的陣列

let arr = [1,2,3,[4,5,6,7],[1,23,5,[1,2,3,45,5]],10]

//方法一:

//使用 es6 中提供的 array.prototype.flat 處理

//然後在使用 set 方法去除重複項

arr = arr.flat(infinity)

console.log(arr)

// […new set(arr)] 展開運算子 將 set 物件獲取出來

set(arr)) 也行

arr = array.from(new set(arr)).sort((a,b)=>a-b)

//方法二:

//將陣列變成字串,不管陣列有幾級都直接 輸出為字串

//最後都會變為以逗號分隔的字串,沒有中括號和層級了相當於直接扁平化

arr = arr.tostring().split(』,』).map(item=>)

//方法三:

arr = json.stringify(arr).replace(/[|]/g,』』).split(』,』).map(item=>number(item))

//"「1,2,3,4,5,6,7,1,23,5,1,2,3,45,5,10"」

//方法四:

//基於陣列的some 方法進行判斷檢測 : ==》 布林值

//find 找到返回當前值 沒找到 返回undefined

//isarray 檢測是否為陣列型別 (挺準確的)

//驗證陣列中的某一項有沒有符合函式中提供的規則

while(arr.some(item=>array.isarray(item)))
//方法五:

//遞迴

~function()

res.push(item)}}

fn(_this)

return res

}}()

arr = arr.myflat()

陣列扁平化

原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...

陣列扁平化

今天看到了陣列扁平化處理,猶記得之前面試被問到過,下面介紹一下陣列扁平化處理的幾種形式 題目要求 將陣列 arr 1,2,3,4,5,6,7,8,9 轉化為 1,2,3,4,5,6,7,8,9 1 遞迴 var arr 1,2,3,4,5,6,7,8,9 方法一 遞迴 function flatfu...

扁平化陣列

第一次遇到陣列扁平化已經是在3k遊戲的筆試題裡,當時是用了遞迴的方法。因為對一些陣列方法,字串方法十分的不熟練 扁平化陣列的核心都是,遍歷陣列元素,遇到陣列就拆,不是陣列就加進去。var arr 1,2,3,4,5 console.log bianpinghua arr tostring split...