cómo crear un mapa en javascript con una matriz de valores dinámicamente

Tengo este requisito. Dependiendo de la cantidad de argumentos pasados ​​en la función, necesito crear tantas entradas en mi mapa. Digamos que tengo una función myfunc1 (a, b, c), necesito tener un mapa con las teclas como “a”, “b” y “c” y puedo tener más de un valor para cada una de las teclas. Pero el problema es que no sé de antemano cuántos valores vendrán para esas claves. A medida que aparecen los valores, debo agregarlos a la lista de valores correspondientes a la clave correspondiente en el mapa. ¿Cómo hago esto en javascript? He encontrado respuestas estáticas como a continuación. Pero quiero hacer esto dinámicamente. ¿Podemos usar el método push?

var map = {}; map["country1"] = ["state1", "state2"]; map["country2"] = ["state1", "state2"]; 

Creo que esto es lo que estás preguntando. addValueToList creará una matriz / lista dinámicamente si la clave no está presente en el mapa.

 //initially create the map without any key var map = {}; function addValueToList(key, value) { //if the list is already created for the "key", then uses it //else creates new list for the "key" to store multiple values in it. map[key] = map[key] || []; map[key].push(value); } 

Puede usar la lista de argumentos para rellenar su objeto con la clave correspondiente a las cadenas que se pasan como argumentos. Luego puedes escribir otra función para poblar este mapa con datos.

 var createMap = function() { var map = {}; Array.prototype.slice.call(arguments).forEach(function ( arg ) { map[arg] = null; }); return map; } 

Entonces createMap('para1', para2', para3') devolverá un objeto con 3 teclas: para1, para2, para3. Todos tienen valor nulo como valor. Obviamente, puede reemplazar nulo con una referencia a los datos que desea que tenga la clave, si desea hacerlo todo en una sola función.

    Intereting Posts