可能重复:
How do I test for an empty Javascript object from JSON?
var test= {};
var incidentReport = {
"place1": "n/a",
"place2": "n/a",
"place3": "n/a",
}
以上是我的变种将要看的两种方式。我尝试过以下代码来测试它是否为空/看起来像{}
if(test == "")
并尝试了
if(test == null)
也尝试了
if(!test)
有谁知道我哪里出错了?只是JavaScript和JSON的初学者。我正在考虑回到练习是否有更好的方法来宣布这个空?
感谢您的支持
答案 0 :(得分:2)
使用JSON.stringify
var test= {};
if(JSON.stringify(test).length==2)
alert('null')
答案 1 :(得分:1)
if(test == "")
检查它是否为空字符串,因此不起作用
if(test == null)
检查null
是否与undefined
“相似” - 事实并非如此
if(!test)
检查它是否为假值,但情况并非如此。
您必须检查是否存在子元素(属性):
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop)) return false;
}
return true;
}
if ( isEmpty(test) ){...}
非常重要的一点是.hasOwnProperty()
- 这会检查它是否是对象的真实属性,而不仅仅是通过原型链继承。
答案 2 :(得分:0)
这里测试是一个对象。所以你必须检查他的对象中是否有任何prioperties / elements。您可以尝试下面的内容
var test= {};
function isEmptyObject(obj) {
// This works for arrays too.
for(var name in obj) {
return false
}
return true
}
alert("is this object empty?" + isEmptyObject(test));