在须要输出为工具的地方,如果没有数据,以前真个习气来说,我们会期待收到一个空工具 {};但实际上,此时我们每每会收到一个空数组 []。
前端在检讨和处理此类数据时,会感到稍许不便。如果考虑不周,还会引发缺点。
在 PHP 中,与 JavaScript 数组和工具对应的观点都是数组;而且 PHP 实际上并不区分索引数组和关联数组,只是许可开拓者通过数组键名的约定来产生这两种数组的效果。也便是说,对付空数组,由于它不包含键名,无法判断它是“索引数组”还是“关联数组”。因此,PHP 的 json_encode() 方法在处理空数组时,一律将其编码为 []。

由此可见,哀求后端来改变这种情形恐怕不太随意马虎,还是须要前端在处理类似数据的时候做个容错判断(我们常说“发送时要严格、吸收时要宽松”嘛)。那么,若何判断既大略又方便呢?
办理方案这里就要隆重推出 _.isEmpty() 啦!
请看以下代码:
_.isEmpty() //true_.isEmpty(null) //true_.isEmpty(undefined) //true_.isEmpty('') //true_.isEmpty({}) //true_.isEmpty([]) //true_.isEmpty('foo') //false_.isEmpty([foo, bar]) //false_.isEmpty({foo: bar}) //false
同时我们把稳到,纵然后端将空数据输出为 null,仅用这一个方法也可以一并判断。
把稳事变须要把稳的是,不能把这货当成 toBoolean() 来用。这样用是有坑的:
_.isEmpty(1) //true_.isEmpty(0) //true_.isEmpty(NaN) //true_.isEmpty(true) //true_.isEmpty(false) //true_.isEmpty(_.isEmpty) //true
以是,只该当用它来判断一个数据凑集是否为空。
希望本文能帮助到您!点赞+转发,让更多的人也能看到这篇内容(收藏不点赞,都是耍泼皮-_-)
关注 {我},享受文章首发体验!
每周重点占领一个前端技能难点。更多精彩前端内容私信 我 回答“教程”
原文链接:https://github.com/cssmagic/blog/issues/5