巢狀陣列拍平(陣列扁平化)

2021-10-14 07:29:41 字數 1002 閱讀 3376

var arr = [1,[2,3],[4,[5,6]]]

var arr_flat = arr.flat(infinity)

flat()預設只會「拉平」一層,如果想要「拉平」多層的巢狀陣列,可以將flat()方法的引數寫成乙個整數,表示想要拉平的層數,預設為1。如果不管有多少層巢狀,都要轉成一維陣列,可以用infinity關鍵字作為引數。

var arr = [1,[2,3],[4,[5,6]]]

var arr_flat = arr.tostring().split(',') //["1", "2", "3", "4", "5", "6"] 字串型別的

let arr_flat = arr.tostring().split(',').map((val)=>) //[1, 2, 3, 4, 5, 6] 數字型別的

如果不使用map函式建立出來的陣列是字串型別的,需要呼叫parseint()來轉為數字型別

var arr = [1,[2,3],[4,[5,6]]]

function fn(arr)

else

})return arr1

}console.log(fn(arr)) //[1, 2, 3, 4, 5, 6]

let arr = [[1, 2, [3, 4], 5], [6, 7, 8], [[9, 10], 11]]

function flat(arr)

return arr;

}console.log(flat(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

var arr = [1,[2,3],[4,[5,6]]]

function fn(arr) , )

}console.log(fn(arr)) [1, 2, 3, 4, 5, 6]

巢狀陣列扁平化和陣列去重

1.利用 array.prototype.flat function flattendeep arr 2.利用 reduce 和 concat function flattendeep arr 1.利用 es6 新資料型別 set set類似於陣列,但是成員的值都是唯一的,沒有重複的值。functi...

leetcode341 扁平化巢狀陣列

題目 把巢狀陣列展開成一維陣列,例如input 1,1 2,1,1 output 1,1,2,1,1 input 1,4,6 output 1,4,6 題解 一種簡單的想法,不管怎麼巢狀數字的前後順序不會變,所以去掉括號即是答案。但是這樣就沒意思了。另一種容易想到的是遞迴法,遇到陣列就去遞迴,整數直...

陣列扁平化

原陣列 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...