第一次遇到陣列扁平化已經是在3k遊戲的筆試題裡,當時是用了遞迴的方法。因為對一些陣列方法,字串方法十分的不熟練
扁平化陣列的核心都是,遍歷陣列元素,遇到陣列就拆,不是陣列就加進去。
var arr = [1, [2, 3, [4, 5]]]
console.log(bianpinghua(arr))
tostring()+split()
先把陣列轉為字串,然後通過,分割成陣列,然乎字元轉數字!太可以了這種方法!
function bianpinghua(arr))
return arr
}
reduce()+concat()
reduce()的第一項為累加的結果,item為陣列每一項值。如果該項是陣列,就遞迴,不是陣列就直接連線。
function flatten(arr) , );
}
還有es2019的新方法
flat(n)
const arr = [1, 2, [3, 4, [5, 6]]];
arr.flat(); // [1, 2, 3, 4, [5, 6]]
arr.flat(2); // [1, 2, 3, 4, 5, 6]
arr.flat (infinity) //展開所有陣列
不帶引數則預設分解一層,帶引數就解到n層,infinity就是展開所有層級。
flat()方法還可以移除陣列內的空項
陣列扁平化
原陣列 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...
陣列扁平化
編寫乙個程式,將陣列扁平化,並去除其中重複部分資料,最終得到乙個公升序而且不重複的陣列 let arr 1,2,3,4,5,6,7 1,23,5,1,2,3,45,5 10 方法一 使用 es6 中提供的 array.prototype.flat 處理 然後在使用 set 方法去除重複項 arr a...