點燈坊

失くすものさえない今が強くなるチャンスよ

使用 isEmpty() 判斷 Empty Value

Sam Xiao's Avatar 2020-03-17

根據 Ramda 的 empty() 判斷是否為 Empty Value。

Version

macOS Mojave 10.15.3
VS Code 1.43.0
Quokka 1.0.282
Ramda 0.27.0
Croks 0.12.3

Ramda

import { isEmpty } from 'ramda'
import { Maybe } from 'crocks'

let { Just, Nothing } = Maybe

isEmpty('') // ?
isEmpty({}) // ?
isEmpty([]) // ?

isEmpty(undefined) // ?
isEmpty(null) // ?

isEmpty(Just(4)) // ?
isEmpty(Nothing()) // ?

isEmpty()
a -> Boolean
判斷任意值是否為 empty

a:data 為任意型別

Boolean:回傳為 truefalse

  • 只要是 empty string、{}[]isEmpty() 都會回傳 true
  • undefinednull 則回傳 false,這兩個 nullable 要靠 isNil() 判斷
  • JustNothing 都回傳 falseMaybe 已經超出 isEmpty() 判斷能力

isEmpty000

Conclusion

  • isEmpty() 無法判斷 0,因為 isEmpty() 使用 equals(x, empty(x)) 判斷,而 empty(1)undefined 而不是 0
  • isEmpty() 無法判斷 undefinednull ,都回傳 false
  • isEmpty() 無法判斷 Maybe,都回傳 false

Reference

Ramda, isEmpty()
Ramda, empty()
Crocks, Maybe