Comment créer dynamiquement des clés dans des tableaux associatifs javascript?
Toute la documentation que j'ai trouvée jusqu'à présent est de mettre à jour des clés déjà créées:
arr['key'] = val;
J'ai une chaîne comme ça " name = oscar "
Et je veux finir avec quelque chose comme ça:
{ name: 'whatever' }
Autrement dit, je divise la chaîne et obtenir le premier élément, et je veux mettre cela dans un dictionnaire.
Code
var text = ' name = oscar '
var dict = new Array();
var keyValuePair = text.split(' = ');
dict[ keyValuePair[0] ] = 'whatever';
alert( dict ); // prints nothing.
javascript
associative-array
OscarRyz
la source
la source
Réponses:
Utilisez le premier exemple. Si la clé n'existe pas, elle sera ajoutée.
Affiche une boîte de message contenant «oscar».
Essayer:
la source
D'une manière ou d'une autre, tous les exemples, bien qu'ils fonctionnent bien, sont trop compliqués:
new Array()
, qui est une surpuissance (et une surcharge) pour un tableau associatif simple (dictionnaire AKA).new Object()
. Fonctionne bien, mais pourquoi toute cette frappe supplémentaire?Cette question est étiquetée "débutant", alors simplifions les choses.
La manière la plus simple d'utiliser un dictionnaire en JavaScript ou "Pourquoi JavaScript n'a pas d'objet de dictionnaire spécial?":
Modifions maintenant les valeurs:
La suppression de valeurs est également très simple:
la source
Javascript n'a pas de tableaux associatifs , il a des objets .
Les lignes de code suivantes font toutes exactement la même chose - définissez le champ «nom» d'un objet sur «orion».
Il semble que vous ayez un tableau associatif car an
Array
est également unObject
- mais vous n'ajoutez pas du tout de choses dans le tableau, vous définissez des champs sur l'objet.Maintenant que cela est clarifié, voici une solution de travail à votre exemple
la source
En réponse à MK_Dev, on est capable d'itérer, mais pas consécutivement. (Pour cela, un tableau est évidemment nécessaire)
La recherche rapide sur Google fait apparaître des tables de hachage en javascript
Exemple de code pour boucler les valeurs dans un hachage (à partir du lien susmentionné):
la source
Code d'origine (j'ai ajouté les numéros de ligne pour pouvoir y faire référence):
Presque là...
trim
texte sur tel quelname = oscar
.trim
dans la ligne 1, utilisez=
et coupez chaque paire KeyValuePairajouter une ligne après 3 et avant 4:
ligne 4: devient maintenant:
ligne 5: remplacer par:
Ce que j'essaie de dire, c'est que le
dict[keyValuePair[0]]
ne fonctionne pas, vous devez définir une chaînekeyValuePair[0]
et l'utiliser comme clé associative. C'est la seule façon dont j'ai fait travailler la mienne. Après l'avoir configuré, vous pouvez vous y référer avec un index numérique ou saisir des guillemets.J'espère que cela pourra aider.
la source
Tous les navigateurs modernes prennent en charge une carte , qui est une restriction de données clé / valeur. Il y a quelques raisons qui rendent l'utilisation d'une carte meilleure que l'objet:
Exemple:
Si vous souhaitez que les clés qui ne sont pas référencées à partir d'autres objets soient récupérées, pensez à utiliser un WeakMap au lieu d'une carte.
la source
Je pense que c'est mieux si tu viens de créer comme ça
pour plus d'informations, jetez un oeil à ce
Structures de données JavaScript - Tableau associatif
la source
c'est ok mais itère à travers chaque propriété de l'objet tableau. si vous voulez seulement parcourir les propriétés myArray.one, myArray.two ... vous essayez comme ça
vous pouvez désormais accéder à la fois par myArray ["one"] et itérer uniquement via ces propriétés.
la source
Array
etObject
travailler uniquement avec desObject
arbres! Un aperçu merveilleux! C'est très utile à faireObject.getOwnPropertyNames(obj/array)
!}
la source