我怎么能返回一个空对象同时空对象等于布尔值false在javascript

how can I return an empty object meanwhile the empty object equals to boolean false in javascript?

本文关键字:对象 于布尔 false javascript 怎么能 一个 返回      更新时间:2023-09-26

我想返回一个空对象同时对象等于布尔值false在我的函数。显然,如果我像下面的代码一样返回{},它等于布尔值true,这不能满足我的请求。

decodeAndParse: function (jsonStr) {
  if (this.NaEptStr(jsonStr)) {
    var result;
    result = decodeURIComponent(jsonStr);
    result = JSON.parse(result);
    return result;
  }
  return false;
}

这个问题有可能解决吗?

如果有人能帮我解决这个问题,我非常感谢

你的代码可以是:

decodeAndParse: function (jsonStr) {
  return this.NaEptStr(jsonStr)? JSON.parse(decodeURIComponent(jsonStr)) : {};
}

那么在调用代码中,你可能会有这样的内容:

var obj = foo.decodeAndParse(jsonStr);
if (obj) {
  ...
}

您可以有一个简单的"emptyObj"测试,如:

function isEmptyObject(obj) {
  return !!Object.keys(obj).length;
}

Then in the caller:

if (isEmptyObject(obj)) {

如果您需要垫片对象。key,参见MDN。请注意,IE8仍然有很大的用户份额(根据netmarketshare,超过桌面浏览器的20%),所以不要忽视非es5浏览器。

创建一个函数,计算对象

中的键数
function isNotEmpty(obj){
    var count = 0;
    for (var k in obj) {
        if (obj.hasOwnProperty(k)) {
           ++count;
        }
    }
   return count ? true : false;
}

并将if修改为

   if (isNotEmpty(this.NaEptStr(jsonStr)))

但是检查对象中是否存在必需字段的最简单方法

 if(this.naEpStr(jsonStr).myRequiredField)