avatar

目錄
Javascript 的 Boolean 居然能這樣用(搭配 Array)

Hi,大家新年快樂,我是小馬彬,趁著除夕夜深人靜時來把最近發現的特別 JS 用法整理一下,Javascript 的 Boolean 居然能夠直接用在 Array.filter() 內的函式

filter

javascript
1
2
3
4
5
['1', '', '3'].filter(Boolean); // ['1', '3']
// 等同於
['1', '', '3'].filter((item) => item); // ['1', '3']
// 亦或是
['1', '', '3'].filter((item) => Boolean(item)); // ['1', '3']

這樣就能少打一點點字,而且好像在程式碼閱讀上也算更直觀(前提是理解可以這樣用的情況下,不然一開始我看到的時候真的黑人問號),用來排除 false, null, undefined, 0, NaN, ''

順便好奇其他常用的 Array 函式在遇到 Boolean 會發生什麼事

map

遇到 map 就會轉成 true 或 false

find

遇到 find 就會取得第一個比對後產生 true 的值

findIndex

遇到 findIndex 就會取得第一個比對後產生 true 的 index

every

every 比對陣列內要全為 true,否則為 false

some

some 只要一個值為 true,最終就會回傳 true

大略拿了一些可能會真實用得上的 Array 函式來寫


以上就是發現 Boolean 居然能這樣用 filter,檢驗過後覺得似乎真的可以當不錯的簡寫方式,寫這篇時又突然一個想到還能夠搭配不同的 Array 函式,如果你很常用預設的寫法來判斷 false, null, undefined, 0, NaN, ‘’,那可能就可以考慮用這個 Boolean 來縮短一點點程式碼

文章作者: 小馬彬
文章鏈接: https://littlehorseboy.github.io/2020/01/24/2020-Javascript-Array-and-Boolean/
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 小馬彬的部落格

評論