HarmonyOS 对象怎么判空?

HarmonyOS 对象怎么判空?

HarmonyOS
2024-10-28 10:32:12
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

方法仅适用于普通对象。如果对象是Array、Function、等,需要使用其他方法进行判断。

function isEmpty(obj: ESObject): boolean {  
  return Object.keys(obj).length === 0;  
}  
const obj = {};  
console.log(isEmpty(obj)); // true

具体还是要看数据传过来的格式,在基础上做一下判断保护。

if(obj) {  
  return  Object.keys(obj).length === 0  
  } else  {  
    console.info(`${obj}`)  
    return true  
  }

可以在工具类文件中新建 ".ts", 用TS编写对应逻辑处理  => 将判断函数导出使用。

export function isEmpty(value: any): boolean {  
    if (value === null || value === undefined) {  
        return true;  
    }  
    if (Array.isArray(value) && value.length === 0) {  
        return true;  
    }  
    if (typeof value === 'object' && Object.keys(value).length === 0) {  
        return true;  
    }  
    if (typeof value === 'string' && value.trim().length === 0) {  
        return true;  
    }  
    return false;  
}

如果检查一个对象是否包含一个函数类型的属性,并且这个函数体是否为空的话,这种情况实际应用也比较少。可以参考下以下案例:

function isFunctionEmpty(func: Function): boolean {  
  return func.toString().trim() === 'function () {}' || func.toString().trim() === '() => {}';  
}  
  
// 使用例子  
const obj = {  
  isEmpty: function() {},  
  doSomething: function() {  
    console.log('Doing something');  
  }  
};  
  
if (isFunctionEmpty(obj.isEmpty)) {  
  // obj.isEmpty 是一个空的函数  
} else {  
  // obj.isEmpty 不是空的函数  
}
分享
微博
QQ
微信
回复
2024-10-28 16:48:56
相关问题
HarmonyOS Sendable装饰的对象怎么获取
106浏览 • 1回复 待解决
HarmonyOS Web组件注入js怎么传递对象
495浏览 • 1回复 待解决
HarmonyOS mac.update指针异常
46浏览 • 1回复 待解决
ArkTs怎么根据模版new对象返回
722浏览 • 0回复 待解决
ArkTs怎么传递对象或者类给Native
2360浏览 • 1回复 待解决
如何删除数组中的值?
372浏览 • 1回复 待解决
DevEco Device中project tasks是的?
5410浏览 • 1回复 已解决