cancel
Showing results for 
Search instead for 
Did you mean: 

Creating Dictionary in JavaScript

Highlighted
New Contributor

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 6
Highlighted
Community Hero

Re: Creating Dictionary in JavaScript

Is there a particular reason why you can't use the dictionary object provided natively in Windows?

 

See

https://support.smartbear.com/testcomplete/docs/scripting/dictionary-object.html


Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
Highlighted
New Contributor

Re: Creating Dictionary in JavaScript

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?

Highlighted
Community Hero

Re: Creating Dictionary in JavaScript

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.



Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
Highlighted
New Contributor

Re: Creating Dictionary in JavaScript

It must be, then what's the point of this dictionary?

Highlighted
Community Hero

Re: Creating Dictionary in JavaScript

The point of any dictionary is to be able to have a means, by using a key, to return a value.  So... that's what we have.  Debugging and reporting on how the dictionary is constructed is simply a matter of development process.


Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
Highlighted
New Contributor

Re: Creating Dictionary in JavaScript

Thanks a lot for your answers.

 

I solved my problem, i will post my code below, maybe will help someone.

 

var wndConspanAnalysisGrid = Aliases.LEAPBridgeConcrete.wndConspan.MDIClient.wndMain.pageMain.pageAnalysis.Custom1;

function TestCreateDictionary()
{
  var arrList = getActiveXObject("Scripting.Dictionary");
  
  for (let i = 1; i <= wndConspanAnalysisGrid.wRowCount; i++)
  {
    var arrListColumns = getActiveXObject("Scripting.Dictionary");

    //Sub keys
    for (let j = 1; j <= wndConspanAnalysisGrid.wColumnCount; j++)
    {
      arrListColumns.Add(GetCellText(0, j), GetCellText(i, j));
    }

    //Principal keys
    arrList.Add(GetCellText(i, 0), arrListColumns);
  }

  /*var safeArray = (arrList.Keys().toArray())
  for (let i in safeArray) {
    Log.Message("Key is: " + safeArray[i]);
    var lineD = arrList.Item(safeArray[i]);
    var line = lineD.Keys().toArray();
    for (let k in line)
      Log.Message("Key is: " + line[k] + ", value is: " + lineD.Item(line[k]))
  }*/
  
  var value = SearchValue(arrList, "2", "Location(m)");

  Log.Message(value);
  //return arrList;
}

function SearchValue(arrList, lineKey, columnKey)
{
  var line = arrList.Item(lineKey);
  
  return line.Item(columnKey);
}

function GetCellText(i, j)
{
  return wndConspanAnalysisGrid.GetItemText(i, j).m_pszData;
}
New Here?
Join us and watch the welcome video:
Announcements
Join TechCorner Challenge!
Want a fun and easy way to learn TestComplete? Try solving weekly TechCorner challenges and get into the Leaderboard!

Challenge Status

How to execute remote test and obtain results via Test Runner REST API

Participate!

Comparing content of HTML table with Excel file data

Participate!

Compare HTML table with Excel file and correct data in the file

Participate!

Retrieve Data from a Web Page

Participate!
Top Kudoed Authors