最白目
最白目

Reputation: 3644

key value style javascript array`s length keeps being 0

I fill my key value array like this:

/**
 * 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);

   }
}

Here is the setter of my object

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

I add about 300 key value pairs, according to google chrome inspector, the iStringMap is filled correctly. However the length of the array seems still to be 0. There must be something wrong. Any help much appreciated

Upvotes: 1

Views: 96

Answers (1)

zerkms
zerkms

Reputation: 254944

You can get the count of object keys using:

Object.keys(obj).length

Object.keys() returns an array of keys of an object passed as a first parameter. And after that you're accessing the .length of that array.

Upvotes: 3

Related Questions