Loop/iterate over dictionary
I created a dictionary as follows and would like to loop over it and perform some actions.
var dict = new ActiveXObject("Scripting.Dictionary");
dict.add("a",1);
dict.add("b",2);
dict.add("c",3);
for (var key in dict){
Log.message("key is "+key+" and value is "+dict[key])
}
But the program does not enter the loop.
How can i iterate over the dictionary in Testcomplete using Jscript?
Hi,
I am not familiar with Dictionary, but I found one example:
//JScript
function ItemsDemo()
{
var a, d, i, s; // Create some variables.
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens"); // Add some keys and items.
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
a = (new VBArray(d.Items())).toArray(); // Get the items.
s = "";
for (i in a) // Iterate the dictionary.
{
s += a[i] + "<br>";
}
return(s); // Return the results.
}
It appears that in your code the part to create an array with the needed items is missing.
I've tried to modify your code and here is what I've got:
function DictTest() {
var dict, ar, typeIs, i
dict = new ActiveXObject("Scripting.Dictionary");
dict.add("a", 1);
dict.add("b","2");
dict.add("c","3");
ar = (new VBArray(dict.Items())).toArray()
for(i in ar) {
Log.Message("inside for loop");
Log.Message("the keys are "+ar[i]);
var typeIs = typeof ar[i];
Log.Message("the type of keys is "+ typeIs)
}
}
It looks pretty fine on playback and you can find the results in the screenshot below:
Does it help?
Thanks