回答

收藏

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

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

在 AJAX 请求后,有时我的应用程序可能会返回空对象,例如:
; G! p. d3 b6 z# L0 N7 Jvar a = {};这种情况我怎么检查?! n1 G6 }7 o* h8 j( d0 x% f8 ?
                                                                - I+ n/ D& i' V- K% V0 W$ c
    解决方案:                                                               
  g: C" t$ p9 j$ K                                                                ECMA 5 :
$ H2 S9 H/ ~$ v' _' v// 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)。
3 b% J% ~/ h9 U0 D& J前 ECMA 5:
+ y. I, W8 y% @# g9 N- J- wfunction isEmpty(obj) {  for(var prop in obj)    if(Object.prototype.hasOwnProperty.call(obj,prop))      return false;   return JSON.stringify(obj) === JSON.stringify({});jQuery :
3 n5 Z8 l. B- H7 m* O$ Q4 FjQuery.isEmptyObject({}); / truelodash:2 J# m! j' F8 U% y7 D& ]
_.isEmpty({}); / true下划线:- k( J% {0 L8 G/ I5 s
_.isEmpty({}); / trueHoek
! j. L- j5 n! T# j# W5 THoek.deepEqual({},{})trueExtJS0 t$ Z) S9 E- M* o
Ext.Object.isEmpty({}); / trueAngularJS(版本 1)
) x' O/ `) S2 x0 [3 F% wangular.equals({},{}); // trueRamda
5 c. S7 x0 z0 e6 L8 G! e! FR.isEmpty({}); / true
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则