在es6中,flat()方法用于按照一個可指定的深度遞歸遍歷數(shù)組,并將所有元素與遍歷到的子數(shù)組的元素合并為一個新的數(shù)組返回,也就是數(shù)組降維,語法為“Array.prototype.flat()”。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
es6中flat的用法是什么
Array.prototype.flat()
flat() 方法會按照一個可指定的深度遞歸遍歷數(shù)組,并將所有元素與遍歷到的子數(shù)組中的元素合并為一個新數(shù)組返回。
也就是我們所說的數(shù)組降維。
作用:將數(shù)組扁平化,對每一項的值進(jìn)行循環(huán)處理,如果該項的值也是數(shù)組,則取出來(相當(dāng)于去掉了這項數(shù)組的[]括號)
flat(n)
將每一項的數(shù)組偏平化,n默認(rèn)是1,表示扁平化深度.
長話短說,就是按照flat里面的參數(shù)對Array做一個去括號的操作,默認(rèn)去一層。
下面就簡單實現(xiàn)下
``` Array.prototype.myFlat = function (num = 1) { if (num < 1) { return this } const res = [] for (let i = 0; i < this.length; i++) { if (Array.isArray(this[i])) { res.push(...this[i].myFlat(num - 1)) } else { res.push(this[i]) } } return res } ```
思路比較簡單,如果是非數(shù)組,直接push,如果是數(shù)字,需要把它去一層括號進(jìn)行處理。去N次括號的話,調(diào)用N次myFlat方法即可。
【