javascriptdictionaryhashtable

How to create an associative array / hash / key-value mapping in JavaScript?


I need to store some statistics using JavaScript in a way like I'd do it in C#:

Dictionary<string, int> statistics;

statistics["Foo"] = 10;
statistics["Goo"] = statistics["Goo"] + 1;
statistics.Add("Zoo", 1);

Is there an Hashtable or something like Dictionary<TKey, TValue> in JavaScript? How could I store values in such a way?


Solution

  • Use JavaScript objects as associative arrays.

    Associative Array: In simple words associative arrays use Strings instead of Integer numbers as index.

    Create an object with

    var dictionary = {};
    

    JavaScript allows you to add properties to objects by using the following syntax:

    Object.yourProperty = value;
    

    An alternate syntax for the same is:

    Object["yourProperty"] = value;
    

    If you can, also create key-to-value object maps with the following syntax:

    var point = { x:3, y:2 };
    
    point["x"] // returns 3
    point.y // returns 2
    

    You can iterate through an associative array using the for..in loop construct as follows

    for(var key in Object.keys(dict)){
      var value = dict[key];
      /* use key/value for intended purpose */
    }