检查对象是否为空的最快方法是什么?
有没有比这更快更好的方法:
function count_obj(obj){
var i = 0;
for(var key in obj){
++i;
}
return i;
}
我假设用 空 表示“没有任何属性”。
// Speed up calls to hasOwnProperty
var hasOwnProperty = Object.prototype.hasOwnProperty;
function isEmpty(obj) {
// null and undefined are "empty"
if (obj == null) return true;
// Assume if it has a length property with a non-zero value
// that that property is correct.
if (obj.length > 0) return false;
if (obj.length === 0) return true;
// If it isn't an object at this point
// it is empty, but it can't be anything *but* empty
// Is it empty? Depends on your application.
if (typeof obj !== "object") return true;
// Otherwise, does it have any properties of its own?
// Note that this doesn't handle
// toString and valueOf enumeration bugs in IE < 9
for (var key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
例子:
isEmpty(""), // true
isEmpty(33), // true (arguably could be a TypeError)
isEmpty([]), // true
isEmpty({}), // true
isEmpty({length: 0, custom_property: []}), // true
isEmpty("Hello"), // false
isEmpty([1,2,3]), // false
isEmpty({test: 1}), // false
isEmpty({length: 3, custom_property: [1,2,3]}) // false
如果只需要处理ECMAScript5浏览器,则可以使用Object.getOwnPropertyNames
而不是hasOwnProperty
循环:
if (Object.getOwnPropertyNames(obj).length > 0) return false;
这将确保即使对象仅具有不可枚举的属性,isEmpty
也仍将为您提供正确的结果。
我试图实现Mockito来测试一个特定的方法,但是。然后返回(…)似乎总是返回空对象,而不是我想要的: 切: Spring配置: 莫基托试验方法: 系统输出: 这里发生的事情是,当我运行测试时,在上面标有//PROBLEM的CUT中的行上,serviceSolutions对象为空。我的愿望是让那个对象从我的测试方法中填充我的“无效服务响应”对象。从我的System.out.println的输出来看
因此,我试图从firebase向recyclerview显示图像,但它抛出了一个错误。错误提示E/nite competitive:[qarth _ debug:]get patch store::createDisableExceptionQarthFile方法失败。E/AndroidRuntime:致命异常:主进程:com . example . fortnite competitive,PI
本文向大家介绍JavaScript 判断一个对象{}是否为空对象的简单方法,包括了JavaScript 判断一个对象{}是否为空对象的简单方法的使用技巧和注意事项,需要的朋友参考一下 做项目时遇到一个问题,判断一个对象是否为空对象,发现这样判断可以,上代码: 1. 代码1: 结果为:3 2. 代码2: 结果为:6 3. 代码3: 结果为:7 所以可以使用代码3的方法判断对象是否为空对象{}; 如果
本文向大家介绍JavaScript / Typescript对象是否为空检查?,包括了JavaScript / Typescript对象是否为空检查?的使用技巧和注意事项,需要的朋友参考一下 对于null检查,可以使用!健康)状况。 示例 以下是代码- 要运行以上程序,您需要使用以下命令- 在这里,我的文件名为demo305.js。 输出结果 这将产生以下输出-
问题内容: 我不知道我的代码有什么问题 这是我的片段课 这是我的SessionManager.java 运行项目时出现的错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ void com.example.gandi.symanlub.SessionManager.logoutUser()” 问题答案: 您收到错误消息是因为在此行您正在调用: 会
主要内容:实现,AbstractCustomer.java,RealCustomer.java,NullCustomer.java,CustomerFactory.java,NullPatternDemo.java在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展