164 votes

Comment créer un objet de la carte dans un script javascript

Je veux créer un objet de la carte en javascript. Je suis venu à l’idée comme suit :

mais alors comment je peux trouver une touche particulière existe ou pas ?

267voto

Quentin Points 325526

N’utilisez un tableau si vous voulez nommé touches, utilisez un objet ordinaire.

Puis :

42voto

Jeremy Banks Points 32470

Une Carte intégrée de la classe est de devenir enfin disponible en JavaScript. Il peut être utilisé à cette fin au lieu de simplement à l'aide de l'Objet. La carte est maintenant pris en charge dans les navigateurs Firefox, Internet Explorer et google Chrome Beta.

La carte ne prend pas en charge l' [subscript] notation utilisée par l'Objet. Cette syntaxe implicitement jette l' subscript de la valeur à une Chaîne, mais la Carte prend en charge les non-clés de Chaîne. Vous devez utiliser les méthodes d' .get(key), .set(key, value) et .has(key).

var m = new Map();
var key1 = 'key1';
var key2 = {};
var key3 = {};

m.set(key1, 'value1');
m.set(key2, 'value2');

console.log("Has key2?", m.has(key2)); // true
console.log("Has key3?", m.has(key3)); // false

L'objet prend uniquement en charge les clés de Chaîne (parce que les touches sont en fait les noms de propriété, et tous les JavaScript noms de propriété sont des Chaînes de caractères.) Si vous utilisez l'Objet, il ne serait pas en mesure de distinguer key2 et key3 parce que leurs représentations de chaîne serait la même:

var m = new Object();
var key1 = 'key1';
var key2 = {};
var key3 = {};

m[key1] = 'value1';
m[key2] = 'value2';

console.log(m.hasOwnProperty(key2)); // true
console.log(m.hasOwnProperty(key3)); // true!?

Références

38voto

Robert Points 12091

Vous souhaitez créer un objet, non pas un tableau.

Comme suit,

Vous pouvez vérifier si la clé existe de multiples façons :

1voto

Howard Points 23487

Utiliser le opérateur : par exemple .

0voto

KOGI Points 2387
if( a['desiredKey'] !== undefined )
{
   // it exists
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X