How do I check this boolean hashmap is empty in javascript?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicates:
Object comparison in JavaScript
How do I test for an empty Javascript object from JSON?
1 2 | var abc = {}; console.log(abc=={}) //false, why? |
为什么是假的?如何匹配空白哈希图…?
是一个新的对象实例化。所以ABC!="一个新对象",因为ABC是另一个对象。
此测试工作:
1 2 3 4 5 6 7 8 9 | var abc = {}; var abcd = {"no":"I am not empty"} function isEmpty(obj) { for (var o in obj) if (o) return false; return true; } alert("abc is empty?"+ isEmpty(abc)) alert("abcd is empty?"+ isEmpty(abcd)) |
更新:刚才看到其他几个人也提出了同样的建议,但是使用了hasownpropy
我无法验证IE8和FX4在我和他们之间的区别,但我希望得到启发。
1 | if (abc.toSource() ==="({})") // then `a` is empty |
或
1 2 3 4 5 6 7 | function isEmpty(abc) { for(var prop in abc) { if(abc.hasOwnProperty(prop)) return false; } return true; } |
语句
测试
没有内置方法(据我所知)来确定对象是否为空,但您可以编写自己的短函数来这样做:
1 2 3 4 5 6 7 | function isObjectEmpty(ob) { for (var prop in ob) if (ob.hasOwnProperty(prop)) return false; return true; } |
(
注意:术语"object"是您想要使用的,而不是"hash map"。
1 | var abc = {}; |
这将创建一个对象
因此,您可以尝试以下类型:
1 | if (typeof abc =="object")... |