react example array javascript jquery .net extjs4 lodash

javascript - example - lodash react



Creando un.net como objeto de diccionario en Javascript (3)

¿Qué hay de esta clase tomada del libro Elocuente JavaScript de Marijn Havereke?

El violín

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); });

Quiero crear un objeto en JavaScript que almacene valores en clave, par de valor y debería poder pasar alguna clave y debería recuperar su valor. En el mundo .NET podemos usar la clase de diccionario para este tipo de implementación. ¿Tenemos alguna opción en el mundo de JavaScript? Estoy usando ExtJs 4.1, por lo que si conoce alguna opción en ExtJS, incluso eso funcionaría.

He intentado algo como esto pero no puedo obtener valor por clave.

var Widget = function(k, v) { this.key = k; this.value = v; }; var widgets = [ new Widget(35, 312), new Widget(52, 32) ];


Solo usa un objeto javascript estándar:

var dictionary = {};//create new object dictionary["key1"] = value1;//set key1 var key1 = dictionary["key1"];//get key1

NOTA: También puede obtener / configurar cualquier "clave" que cree utilizando la notación de puntos (es decir, dictionary.key1 )

Podrías llevar eso más lejos si quisieras funciones específicas para ello ...

function Dictionary(){ var dictionary = {}; this.setData = function(key, val) { dictionary[key] = val; } this.getData = function(key) { return dictionary[key]; } } var dictionary = new Dictionary(); dictionary.setData("key1", "value1"); var key1 = dictionary.getData("key1");


var widget={}; var key=''k''; widget[key]=''v''; alert(widget.k);//gives you v