Ajouter dynamiquement des données à une carte javascript
Est-il possible d'ajouter dynamiquement des données à une carte en javascript? Un map.put(key,value)
? J'utilise les bibliothèques Yui pour javascript, mais je n'ai rien vu qui puisse supporter cela.
Tout objet Javascript fonctionne comme une "carte"
randomObject['hello'] = 'world';
Généralement, les gens construisent des objets simples à cette fin:
var myMap = {};
// ...
myMap[newKey] = newValue;
edit - Le problème avec une fonction "put" explicite est que vous devez alors faire très attention à ne pas avoir la fonction elle-même. une partie de la carte. Ce n'est pas vraiment une chose javascript à faire.
13 février 2014 - JavaScript moderne a facilités pour créer des propriétés d'objet non énumérables, et c'est assez facile à faire. Cependant, il est toujours vrai qu'une propriété "put", énumérable ou non, revendique le nom de la propriété "put" et la rend indisponible. C'est-à-dire qu'il n'y a toujours qu'un seul espace de noms par objet.
Javascript a maintenant un objet spécifique appelé Map, vous pouvez appeler comme suit:
var myMap = new Map()
Vous pouvez le mettre à jour avec .set:
myMap.set("key0","value")
Cela présente l’avantage des méthodes que vous pouvez utiliser pour gérer les recherches, comme le fichier booléen .has.
myMap.has("key1"); // evaluates to false
Vous pouvez l'utiliser avant d'appeler .get sur votre objet Map pour gérer la recherche de clés inexistantes.