web-dev-qa-db-fra.com

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.

56
stevebot

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.

104
Pointy

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.

31
NiallJG