By Salesforce documentation, you can define several collection types including a Map.
A Map collection allows you have a key/value pair where the key is unique. Declaring such is easy by adding the following
<aura:attribute type="Map" name="fooMap" />
But in your controller, if you try to do any Map functions such as keys(), set(key, value), values(), you get an error such as:
set is not a function
or
values is not a function.
What is happening in Lightning is even if you declared it as Map it is treated as an Object. It took me a while to figure this out.
To get around this “limitation” I manually assigned a map in the controller and then I was able to do Map functions. You can do this either on init or before you use the component Map.
Hope you find this tip useful.