【发布时间】:2021-12-06 08:17:07
【问题描述】:
function isEmpty(obj) {
for(var key in obj) {
return false;
}
return true;
}
这种检查对象是否为空的方法有什么问题?我对 JS 还很陌生 我正在通过 SO 来检查检查对象是否为空并遇到的最好和最快的方法是 How do I test for an empty JavaScript object? 等等。
检查Object.prototype.hasOwnProperty,所有问题都有相似的答案,这似乎不必要地复杂。是否存在我提供的代码不起作用的用例,我应该使用链接问题中提供的答案?
【问题讨论】:
-
请问,为什么要检查对象是否为空?以我的经验,这是一件非常罕见的事情。
-
您知道
"x" in obj和obj.hasOwnProperty("x")之间的区别吗?见How do I check if an object has a specific property in JavaScript?。 -
我不确定我是否理解。您无需知道对象是否为空即可在其中搜索键。
-
对一个人来说“不必要的复杂”对其他人来说是“不够复杂”。您要求提供您提供的代码不起作用的用例,并且正在击落提供这些用例的人。决定是否要简单而不覆盖边缘情况并忽略边缘情况,或者允许复杂情况来捕捉边缘情况。