Forum Discussion

theultimate's avatar
theultimate
New Contributor
6 years ago

Creating Dictionary in JavaScript

Hello everyone,

 

I need your help with creating a dictionary in JavaScript with multiple keys, like this:

 

array = {
	"Load Case" :
	{
		"(Support)1" : {
			"Location(ft)" : 0,
			"Fy(kips)" : 0,
			"Mz(kft)" : 0,
			"Deflection(in)": 0,
			"Rotation(Deg)" : 0
		},
		
		"2" : {
			"Location(ft)" : 0,
			"Fy(kips)" : 0,
			"Mz(kft)" : 0,
			"Deflection(in)": 0,
			"Rotation(Deg)" : 0
		},
	},
	
	"Envelope" :
	{
	}
};

What i m trying to do is to get the values from a grid, and for each line set the name from row[0] as the main key, and as subkeys the name which are on column[0] and after that add values to the subkeys from table[i][j].

 

 

6 Replies

    • theultimate's avatar
      theultimate
      New Contributor

      I am not used with dictionaries in javascript.

       

      I ve tried something like this:

      function testt()
      {
        var arrList = getActiveXObject("Scripting.Dictionary");
        
        for (let i = 1; i <= wndConspanAnalysisGrid.wRowCount; i++)
        {
          var arrListColumns = getActiveXObject("Scripting.Dictionary");
      
          //Principal keys
          for (let j = 1; j <= wndConspanAnalysisGrid.wColumnCount; j++)
          {
            arrListColumns.Add(GetCellText(0, j), GetCellText(i, j));
          }
      
          var arrayTest = (new VBArray(arrListColumns.Items())).toArray();
          Log.Message("Count " + arrayTest.length);
      for (let k = 0 ; k < arrayTest.length; k++) Log.Message(arrayTest[i]);
      arrList.Add(GetCellText(i, 0), arrListColumns); } return arrList; }

      My new question is how can i print to log.message the whole dictionary to see if its working properly or a function to get the specific element from this dictionary?

      • tristaanogre's avatar
        tristaanogre
        Esteemed Contributor

        I'm not sure you can....  There would have to be some way to convert the dictionary object into a string to write out to the log... and I'm not sure that you can natively do that.