Ramda 提供了 empty()
回傳各型別的 Empty 值,同時也提供了 isEmpty()
判斷是否為 Empty 值。
Version
macOS Mojave 10.14.5
VS Code 1.35.1
Quokka 1.0.232
Ramda 0.26.1
Ramda
isEmpty()
a -> Boolean
根據empty()
判斷是否為 empty 值
import { isEmpty } from 'ramda';
isEmpty(''); // ?
isEmpty({}); // ?
isEmpty([]); // ?
isEmpty({ length: 0 }); // ?
isEmpty(null); // ?
isEmpty(undefined); // ?
也因為是根據 empty()
判斷,所以 ''
、{}
、[]
都回傳 true
。
第 6 行
isEmpty({ length: 0 }); // ?
儘管是 length 的 array-like object,isEmpty()
並無法判斷,由於與 []
不等,因此回傳 false
。
第 7 行
isEmpty(null); // ?
null
語意為 empty object,所以 isEmpty()
要回傳 true
也屬合理。
但 empty()
已經認定 empty object 為 {}
,由於與 {}
不等,因此回傳 false
。
第 8 行
isEmpty(undefined); // ?
undefined
在語義上是否為 empty 比較爭議,但因為 isEmpty()
是根據 empty()
判斷,所以只要不是 ''
、{}
與 []
,都回傳 false
。
Conclusion
- 由於
isEmpty()
基於empty()
,只要不是''
、{}
與[]
,當視為false
- 若要判斷
undefined
與null
,要使用isNil()