回答

收藏

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

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

在 AJAX 请求后,有时我的应用程序可能会返回空对象,例如:0 A6 _" d2 M+ f: l! X
var a = {};这种情况我怎么检查?
9 U( I( r4 J% n, M5 K* M                                                               
  B0 j+ [% r- q8 j  V    解决方案:                                                               
4 f7 g: _* |! o' k                                                                ECMA 5 :
* b5 U0 Z  U, `0 y; k$ z// 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)。
  A2 E9 B1 _0 t2 u前 ECMA 5:
, U& Y! b) G' ~& l/ n" G( y2 Wfunction isEmpty(obj) {  for(var prop in obj)    if(Object.prototype.hasOwnProperty.call(obj,prop))      return false;   return JSON.stringify(obj) === JSON.stringify({});jQuery :; r& w6 F5 {3 r+ \
jQuery.isEmptyObject({}); / truelodash:
/ S3 w) L" V5 d; Z_.isEmpty({}); / true下划线:
" o9 l* t. D+ c. p5 I, i7 E_.isEmpty({}); / trueHoek
: T- W% Q$ K; |& }Hoek.deepEqual({},{})trueExtJS' m. W. Z" n: Q) P7 ]  T9 _# q; B% Y/ w4 X
Ext.Object.isEmpty({}); / trueAngularJS(版本 1)( [! I8 B' m2 B7 x! e& V
angular.equals({},{}); // trueRamda
2 ]0 _/ @0 g. T6 S4 Z1 n: pR.isEmpty({}); / true
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则