javascript
转成数组_JavaScript之数组扁平化
今天給大家分享一下JavaScript的數組扁平化。
1. 扁平化
數組的扁平化,就是將一個嵌套多層的數組 array (嵌套可以是任何層數)轉換為只有一層的數組。舉個例子,假設有個名為 flatten 的函數可以做到數組扁平化,效果就會如下:
知道了效果是什么樣的了,我們可以去嘗試著寫這個 flatten 函數了。
2. 遞歸
我們最一開始能想到的莫過于循環數組元素,如果還是一個數組,就遞歸調用該方法:
3. toString
如果數組的元素都是數字,那么我們可以考慮使用 toString 方法,因為:[1, [2, [3, 4]]].toString()
調用 toString 方法,返回了一個逗號分隔的扁平的字符串,這時候我們再 split,然后轉成數字不就可以實現扁平化了嗎?
然而這種方法使用的場景卻非常有限,如果數組是 [1, '1', 2, '2'] 的話,這種方法就會產生錯誤的結果。
4. undercore
那么如何寫一個抽象的扁平函數,來方便我們的開發呢,所有又到了我們抄襲 underscore 的時候了,在這里直接給出源碼和注釋,但是要注意,這里的 flatten 函數并不是最終的 _.flatten,為了方便多個 API 進行調用,這里對扁平進行了更多的配置。
解釋下 strict,在代碼里我們可以看出,當遍歷數組元素時,如果元素不是數組,就會對 strict 取反的結果進行判斷,如果設置 strict 為 true,就會跳過不進行任何處理,這意味著可以過濾非數組的元素。注意,以上實現的細節并不是完全按照 underscore。
學習相關推薦(編程必備輔助):
①:搜索關注公眾號“只會寫BUG”,分享更多干貨知識,資訊,教程等
②:海量編程類資料零基礎到高級亟待領取!!!
如果覺得對你有一丟丟幫助,麻煩動動你的小手指【關注】一下上面的公眾號吧,或者【轉發】讓更多人看到該文章。大家也可積極后臺給我留言,多多交流,共同進步。
總結
以上是生活随笔為你收集整理的转成数组_JavaScript之数组扁平化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ctfmon32.exe是间谍程序吗 c
- 下一篇: ctrlvol.exe是一种程序 ctr