2011-03-25 21 views
32

Python'da myMap = {key: [value1, value2]} gibi bir şey yapabilirim ve value2javascript İlişkili dizi

kullanarak value2'e erişebilirim javascript'te böyle bir şey yapabilir miyim?

cevap

41

Eh, bunu yapabilirsiniz:

var myMap = { key: [ value1, value2 ] }; 
var array = myMap.key; // or myMap["key"] 

JavaScript bir "ilişkisel dizi" türü, mülk sayısı parça tutmak gibi dizi davranışı ile "map" davranışı birleştiren birine sahip değildir. Böylelikle yapılacak ortak şey, sade bir nesne kullanmaktır. Artık modern JavaScript'de (2017), tuşların sadece basit nesneler kullanırken olduğu gibi sadece dizilere değil, herhangi bir türde olmasını sağlayan Map açık bir tesisi var.

var myMap = { 'function': 'hello world' }; 

alıntı sözdizimi herhangi bir dize kullanılmasını sağlayan:

JavaScript bunları alıntı sürece sen anahtarları için ayrılmış kelime kullanmasına izin vermez ki, nesne değişmezi gösterimde hakkında biraz saçma özellik adı olarak. Bu tür özelliklere erişmek için, [ ] operatörü

console.log(myMap["function"]); // "hello world" 
+0

Eğer dizi bir nesne değil deklare! –

+0

@SuhaybKharabsheh ?? Sağ? Nümerik olmayan özellik isimleri istediğinizde JavaScript dizileri kullanılmamalıdır (gerçekten iyi bir nedeniniz yoksa). – Pointy

8

Evet kullanmak istiyorum ve sözdizimi çok hemen hemen aynıdır.

myMap.key[1] 
5

Kısa cevap ... evet ... Gerçekten de öyle

var m = { Foo : ["Bar", "Baz"] }; 

alert(m.Foo[0]); 
alert(m["Foo"][1]); 
9

:

var myMap = {key: ["value1", "value2"]}; 
alert(myMap["key"][1]); // pops up an alert with the word "value2" 

Ayrıca aşağıdaki biçimi kullanabilirsiniz.

var myMap = {london: ['clapham', 'chelsea'], bristol:['clifton', 'redland']} 

alert(myMap.london[0]); 
alert(myMap['bristol'][1]); 

Sen Haritası kullanarak yapabilirsiniz jsFiddle

0

bu örneğe bakın:

var myMap = new Map(); 
myMap.set('key','Value'); 
var res = myMap.get('key'); 

console.log(var); // Result is: 'Value'