var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; var s = Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b}) console.log(s) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
數組的成員有時仍是數組,Array.prototype.flat()用於將嵌套的數組「拉平」,變成一維數組。該方法返回一個新數組,對原數據沒有影響。[1, 2, [3, 4]].flat() // [1, 2, 3, 4]原數組的成員裏面有一個數組,flat()方法將子數組的成員取出來,添加在原來的位置。flat()默認只會「拉平」一層,若是想要「拉平」多層的嵌套數組,能夠將flat()方法的參數寫成一個整數,表示想要拉平的層數,默認爲1。若是無論有多少層嵌套,都要轉成一維數組,能夠用Infinity關鍵字做爲參數。若是原數組有空位,flat()方法會跳過空位。