1

我像这样填充我的键值数组:

/**
 * Callback: Gets invoked by the server when the data returns
 * 
 * @param {Object} aObject
 */
function retrieveStringsFromServerCallback(aObject){

   for(var i = 0;i < aObject['xml'].strings.appStringsList.length;i++){
      var tKey = aObject['xml'].strings.appStringsList[i]["@key"];      
      var tValue = aObject['xml'].strings.appStringsList[i]['$'];
      configManager.addStringElement(tKey,tValue);

   }
}

这是我的对象的设置器

/**
 * @param {string} aKey
 * @param {string} aValue
 */
this.addStringElement = function(aKey, aValue){
    self.iStringMap[aKey] = aValue;
    console.log("LENGTH: "+self.iStringMap.length);
}

我添加了大约 300 个键值对,根据谷歌浏览器检查器,iStringMap正确填写。但是数组的长度似乎仍然为0。一定有问题。非常感谢任何帮助

4

1 回答 1

3

您可以使用以下方法获取对象键的计数:

Object.keys(obj).length

Object.keys()返回作为第一个参数传递的对象的键数组。之后,您将访问该.length数组的 。

于 2012-11-23T07:27:26.847 回答