JavaScript - 词典为空

JavaScript - Dictionary is empty

我正在使用 Appcelerator,我想知道我的 JS 字典是否为空。

我试过这个:

var options = {};

// Option 1
Object.keys(options).length
1

//Option 2
isEmpty(options)
false

function isEmpty(ob){
      for(var i in ob){ if(ob.hasOwnProperty(i)){return false;}}
      return true;
}

//Option 3
JSON.stringify(options) === '{}'
false

最后我发现了问题:我添加了一个值为 'undefined' 的键,但 JSON.stringify() 函数没有显示该键。

所以,这个函数 Object.keys(options).length 工作得很好。

注意值为 'undefined' 的键,请使用此函数 Object.keys(options) 进行检查,因为 JSON.stringify return 一个空字典 {}

var dict = {
   cat: undefined
}

Ti.API.debug("Dict: " + JSON.stringify(dict)) >  Dict: {}
Ti.API.debug("Keys: " + Object.keys(options).length) > Keys: 1
Ti.API.debug("Keys str: " + Object.keys(options)) > Keys: cat

var dict = {}

Ti.API.debug("Dict: " + JSON.stringify(dict)) >  Dict: {}
Ti.API.debug("Keys: " + Object.keys(options).length) > Keys: 0
Ti.API.debug("Keys str: " + Object.keys(options)) > Keys: