回答

收藏

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

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

在 AJAX 请求后,有时我的应用程序可能会返回空对象,例如:
# A2 ?& R( T/ \# }2 |% ovar a = {};这种情况我怎么检查?
, i& }. o+ Q# j0 g                                                                . _  y. ^6 j$ `+ M
    解决方案:                                                                7 t# [3 a7 R' D; F* A
                                                                ECMA 5 :4 `* x' S4 |( N, V8 t* S
// 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)。
0 n1 S" @& P3 A  _前 ECMA 5:0 u/ }6 ?( T' h0 Z% T7 m
function isEmpty(obj) {  for(var prop in obj)    if(Object.prototype.hasOwnProperty.call(obj,prop))      return false;   return JSON.stringify(obj) === JSON.stringify({});jQuery :  `6 E5 C, \5 G
jQuery.isEmptyObject({}); / truelodash:' b" o) r: m! l  q6 q& U/ v$ |
_.isEmpty({}); / true下划线:! M2 U% C3 r- i* n
_.isEmpty({}); / trueHoek
; F0 B6 S4 s6 c% qHoek.deepEqual({},{})trueExtJS7 r( R& M7 A8 J5 j0 I1 o
Ext.Object.isEmpty({}); / trueAngularJS(版本 1)
" N9 C+ i2 r1 r$ _9 Kangular.equals({},{}); // trueRamda* I7 b6 A/ O* f  q. z/ F5 p- s
R.isEmpty({}); / true
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则