Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.javascript > #2930

Re: Clés de tables de hachage

From Paul Gaborit <Paul.Gaborit@invalid.invalid>
Newsgroups fr.comp.lang.javascript
Subject Re: Clés de tables de hachage
Date 2015-07-07 11:36 +0200
Organization EMAC (Ecole des Mines d'Albi-Carmaux)
Message-ID <wt9io9wcnsd.fsf@mirabeau.mines-albi.fr> (permalink)
References <20150707091234.34f58523@free.fr>

Show all headers | View raw


À (at) Tue, 7 Jul 2015 09:12:34 +0200,
Yliur <yliur@free.fr> écrivait (wrote):

> J'ai tâché d'utiliser des tables de hachage en javascript. Enfin le
> machin qui en tient lieu, avec des associations clé/valeur.
>
> Quelque chose comme ça :
>     var table = {} ;
>     table['truc'] = 'coucou' ;

Ici, la clé est une chaîne de caractères : 'truc'.

> J'arrive à m'en servir sous cette forme, ça fonctionne. Par contre j'ai
> voulu utiliser ce système pour mémoriser les éléments html déjà traités
> lors d'un parcours d'arbre du DOM et là ça s'est moins bien passé : La
> première fois table[elt] renvoie bien faux (elle est vide), mais toutes
> les fois suivantes l'expression renvoie vrai, quel que soit l'élément
> html qui lui est présenté.

La question à se poser est la nature de elt.

Si c'est une variable qui contient une chaîne, cette valeur sera utilisé
comme clé et ça fonctionnera comme au-dessus.

Si c'est une variable qui contient un objet, c'est l'objet converti en
chaîne qui sera utilisé comme clé. Or tous les objets une fois convertis
en chaîne donnent la chaîne "[object Object]".

Une solution consiste à utiliser 'JSON.stringify(elt)' comme clé plutôt
que 'elt'. Une autre solution consiste à utiliser une Map.

> Est-ce que ce système ne fonctionne qu'avec certains types de données
> pour les clés ? Ou je me suis juste planté quelque part ?

Les clés sont *toujours* des chaînes.

Quelques liens (en anglais):

<http://stackoverflow.com/questions/12386450/using-an-object-as-a-property-key-in-javascript>

<http://stackoverflow.com/questions/28989091/using-javascript-object-as-object-key>


-- 
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>

Back to fr.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Clés de tables de hachage Yliur <yliur@free.fr> - 2015-07-07 09:12 +0200
  Re: Clés de tables de hachage Paul Gaborit <Paul.Gaborit@invalid.invalid> - 2015-07-07 11:36 +0200
    Re: Clés de tables de hachage Yliur <yliur@free.fr> - 2015-07-08 01:05 +0200

csiph-web