I want to create a object in JavaScript which will store values in key, value pair and I should be able to pass some key and should be able to get its value back. In .NET wo
How about this class taken from Marijn Havereke's book Eloquent JavaScript
The fiddle
function Dictionary(values) {
this.values = values || {};
var forEachIn = function (object, action) {
for (var property in object) {
if (Object.prototype.hasOwnProperty.call(object, property))
action(property, object[property]);
}
};
Dictionary.prototype.containsKey = function(key) {
return Object.prototype.hasOwnProperty.call(this.values, key) &&
Object.prototype.propertyIsEnumerable.call(this.values, key);
};
Dictionary.prototype.forEach = function(action) {
forEachIn(this.values, action);
};
Dictionary.prototype.lookup = function(key) {
return this.values[key];
};
Dictionary.prototype.add = function(key, value) {
this.values[key] = value;
};
};
var numberDic = new Dictionary({One: 1,Two: 2, Three: 3});
//-- does key exist
console.log(numberDic.containsKey("One"));
console.log(numberDic.containsKey("One"));
console.log(numberDic.containsKey("Four"));
//-- loop through each item in the dic
numberDic.forEach(function(key, value) {
console.log(key, "is", value);
});
//-- works with complex objects
//------------------------------------------
var complexObjectDic = new Dictionary({
Microsoft: {
Something: "Real Interesting",
About: "Microsoft",
Will: "Go",
Here: ".",
ProductPrices: {
WindowsPhone: 55.88,
Windows :{
WinXp : 180.00,
Win7 : 200.00,
Win8 : 150.00
}
}
},
Apple: {
Did: "you",
Hear: "the",
New: "iphone",
Will: "be coming out soon",
}});
//-- does key exist
console.log(complexObjectDic.containsKey("Microsoft"));
console.log(complexObjectDic.containsKey("Apple"));
console.log(complexObjectDic.containsKey("Facebook"));
//-- search the dic by key
console.log(complexObjectDic.lookup("Microsoft"));
console.log(complexObjectDic.lookup("Apple"));
//-- add item to dic
complexObjectDic.add("Instagram", {
This: "is",
Another: "object",
That: "I willl be Adding"
});
//-- loop through each item in the dic
complexObjectDic.forEach(function(key, value) {
console.log(key, value);
});