Ce qui suit ramènera le dernier élément de ce dictionnaire.

$mydict = {"1":"one", "5":"five", "5":"five"};
$elements = $mydict["5"];
console.log($elements);

http://jsfiddle.net/7pnb3xj8/

Pourquoi ne ramène-t-il pas les deux derniers articles?

Deux des mêmes clés sont-elles autorisées?

Y a-t-il une raison d'utiliser des variables jQuery lorsque des dictionnaires sont impliqués? D'après ce que je comprends, jQuery ne sait rien des dictionnaires.

2
4thSpace 12 juil. 2015 à 19:56

5 réponses

Meilleure réponse

Les dictionnaires n'autorisent qu'une seule valeur pour chaque clé unique, de sorte que le dictionnaire que vous définissez est équivalent à:

var dict = { "1" : "one", "5" : "five" };

De plus, je ne sais pas ce que vous voulez dire avec les variables jquery, si vous parlez de mettre un «$» avant le nom de votre variable, c'est toujours une variable JS avec un «$» dans son nom.

2
Sosdoc 12 juil. 2015 à 16:59

Techniquement, ce sont des objets, pas des dictionnaires. Modifier: Comme cela a été souligné, les objets et les dictionnaires sont techniquement équivalents et ne sont que des paires de valeurs clés. Mon commentaire d'origine reflétait simplement que la terminologie utilisée pour les désigner en JavaScript est les objets, vous aurez donc plus de facilité à rechercher des informations sur les objets JavaScript que les dictionnaires JavaScript.

Je suppose que tu viens de python? Les objets ne peuvent pas avoir plus d'une valeur avec la même clé, de sorte que cet objet n'est pas valide en JavaScript.

Edit: De plus, ce ne sont pas des variables jquery. Les variables jQuery n'existent pas. Je pense que vous avez mal compris comment les gens utilisent jquery. Ils utilisent en fait le $ qui est le sélecteur jQuery et l'invoquent avec le () passant dans un objet pour transformer cet objet en objet jQuery. donc ce n'est pas $ myObject, c'est $(myObject).

0
OceansOnPluto 12 juil. 2015 à 17:07

Première chose, whatever prefixed with $ is not jQuery thing. Dans les dictionnaires JavaScript ne permet pas les clés en double. Si vous essayez d'ajouter une clé et une valeur en double, cela remplacera la valeur existante. JS Engine pense que vous essayez de changer la valeur si elle est en double sinon elle créera une nouvelle référence pour elle.

0
Exception 12 juil. 2015 à 17:01

Il semble qu'au moment de l'exécution, les entrées en double de votre objet soient remplacées par la dernière entrée. Votre objet $mydict = {"1":"one", "5":"five", "5":"five"}; devient donc

$mydict = {"1":"one", "5":"five"};

Essayez simplement de vous connecter $mydict

Démonstration de violon - http://jsfiddle.net/7pnb3xj8/1/

1
Amit.rk3 12 juil. 2015 à 17:05

Dans les objets Javascript, la dernière valeur de clé remplacera toute clé du même nom. Donc,

$mydict = {"1":"one", "5":"five", "5":"six"};
$elements = $mydict["5"];

Imprimera six, pas cinq

1
Suman Barick 12 juil. 2015 à 17:00