La création dynamique de clés en JavaScript tableau associatif
Comment puis-je créer dynamiquement des touches en javascript tableaux associatifs?
L'ensemble de la documentation que j'ai trouvé pour l'instant est de mettre à jour les clés qui sont déjà créés:
arr['key'] = val;
J'ai une chaîne comme celle-ci " name = oscar "
Et je veux retrouver avec quelque chose comme ceci:
{ name: 'whatever' }
Qui est je divise la corde et obtenir le premier élément, et je veux mettre que dans un dictionnaire.
Code
var text = ' name = oscar '
var dict = new Array();
var keyValuePair = text.split(' = ');
dict[ keyValuePair[0] ] = 'whatever';
alert( dict ); //prints nothing.
- Lien saut à Eugene réponse de pour plus de commodité
Vous devez vous connecter pour publier un commentaire.
Utiliser le premier exemple. Si la clé n'existe pas, il sera ajouté.
Fera apparaître une boîte de message contenant 'oscar'.
Essayer:
En quelque sorte tous les exemples, tandis que bien, sont extrêmement compliquées:
new Array()
, ce qui est inutile (et un rétroprojecteur) pour un simple tableau associatif (AKA dictionnaire).new Object()
. Fonctionne très bien, mais pourquoi toute cette saisie de texte supplémentaire?Cette question est taggés "débutant", donc, nous allons faire simple.
L'uber-façon simple d'utiliser un dictionnaire en JavaScript ou "Pourquoi JavaScript n'est pas un spécial dictionnaire de l'objet?":
Maintenant, nous allons changer les valeurs:
La suppression de valeurs est trop facile:
Javascript n'a pas de tableaux associatifs, il a objets.
Les lignes de code suivantes tous faire exactement la même chose - pour définir le champ "nom", sur un objet 'orion'.
Il semble que vous avez un tableau associatif, car un
Array
est aussi unObject
- mais vous n'êtes pas d'ajouter des éléments dans le tableau, vous êtes définition des champs de l'objet.Maintenant que c'est clarifié, voici une solution qui fonctionne pour votre exemple
En réponse à MK_Dev, on est capable de réitérer, mais pas consécutivement. (Pour que, évidemment, un tableau est nécessaire)
Rapide recherche sur google apporte les tables de hachage en javascript
Exemple de code pour faire une boucle sur les valeurs dans une table de hachage (à partir du lien ci-dessus):
Code d'origine (j'ai ajouté les numéros de ligne afin de pouvoir les consulter):
Y est presque...
trim
sur le texte de sorte qu'il estname = oscar
.peut-être mieux de ne pas
trim
dans la ligne 1, l'utilisation=
et de la garniture de chaque keyValuePairajouter une ligne après la 3e et avant 4:
ligne 4: devient Maintenant:
ligne 5: Modification:
Ce que j'essaie de dire, c'est que le
dict[keyValuePair[0]]
ne fonctionne pas, vous devez définir une chaîne dekeyValuePair[0]
et de l'utiliser comme clé associative. C'est la seule façon que j'ai eu le mien à travailler. Après l'avoir configuré, vous pouvez soit le consulter avec index numérique ou d'une clé entre guillemets.Espère que ça aide.
Tous les navigateurs modernes soutenir un Carte, qui est une des clés/données de la valeur de la sténose. Il ya un couple de raisons qui font à l'aide d'une Carte de mieux que de l'Objet:
Exemple:
Si vous voulez clés qui ne sont pas référencées à partir d'autres objets à ordures, pensez à utiliser un WeakMap au lieu de une Carte.
Je pense que c'est mieux si vous venez de créer comme ceci
pour plus d'infos , jetez un oeil à ce
JavaScript Structures De Données - Tableau Associatif
c'est ok, mais parcourt toutes les propriétés de l'objet array.
si vous voulez seulement de parcourir les propriétés myArray.l'un, myArray.deux... vous essayez comme ceci
maintenant, vous pouvez accéder à la fois par montableau["un"] et de réitérer que grâce à ces propriétés.
Array
etObject
et de travailler uniquement avecObject
arbres! Merveilleuse perspicacité! Il est très utile pour faireObject.getOwnPropertyNames(obj/array)
!}