回答

收藏

如何测试一个空的 JavaScript 对象?

技术问答 技术问答 722 人阅读 | 0 人回复 | 2023-09-11

在 AJAX 请求后,有时我的应用程序可能会返回空对象,例如:
0 a- Z4 l8 w$ E$ n; ?* svar a = {};这种情况我怎么检查?
. b" L" v( P6 t5 u# D                                                               
: x7 t+ \: _+ ^# y+ `. H( r    解决方案:                                                               
* o& ~8 E7 P, e                                                                ECMA 5 :
7 S$ O6 U9 V% m( B2 o// because Object.keys(new Date()).length === 0;// we have to do some additional checkobj //  null and undefined check&& Object.keys(obj).length === 0&& Object.getPrototypeOf(obj) === Object.prototype但请注意,这将创建一个不必要的数组( 返回值keys)。
; y5 u1 v, ?" L' f前 ECMA 5:
( ~6 R* i% w/ G3 B( Pfunction isEmpty(obj) {  for(var prop in obj)    if(Object.prototype.hasOwnProperty.call(obj,prop))      return false;   return JSON.stringify(obj) === JSON.stringify({});jQuery :6 _# A7 e6 ~" r* G  f2 D
jQuery.isEmptyObject({}); / truelodash:
6 j4 D# W; o8 `' C_.isEmpty({}); / true下划线:
5 N% f; n! J+ i! U_.isEmpty({}); / trueHoek% o7 @$ w3 V# v8 A" c* g
Hoek.deepEqual({},{})trueExtJS
3 M; a/ ~7 J- N9 uExt.Object.isEmpty({}); / trueAngularJS(版本 1)
- W% u# Z% U) Q+ a8 a  Fangular.equals({},{}); // trueRamda  K1 p' g6 v! `3 q
R.isEmpty({}); / true
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则