Forum Discussion

newbiexiii's avatar
newbiexiii
New Contributor
4 years ago

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",...
  • KseniaSemina's avatar
    KseniaSemina
    4 years ago

    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