2010-09-30 8 views
17

Kullanıcıların bir öğe kodunu yazabildikleri ve bu öğe kodunun kimlik numarasının javascript'te ne olduğunu bulması gereken bir otomatik tamamlama metin kutusuna sahibim.Bir javascript ilişkilendirici dizisini doldurmak için verimli sözdizimi

bütünleşik bir dizidir yapılmalı hayal ediyorum yoldur, ama şu biraz uzun soluklu görünüyor ve ben birisi veya aşağıda olması ne steno yapmak için daha iyi bir yol var umuyorum:

var itemIds = new Array(); 
itemIds["item1"] = 15; 
itemIds["item2"] = 40; 
itemIds["item3"] = 72; 
... 

function getItemId(code){ 
    return itemIds[code]; 
} 
+1

'itemIds'' Array' nesnesi olarak bildirmek gerekli değildir. Sonuçta sadece bir nesneye özellik ekliyorsunuz. JavaScript nesnesi, anahtar/değer çiftleri için bir kap olarak görülebildiği için, herhangi bir JavaScript nesnesi yapılacaktır. – smwikipedia

cevap

21

Yaptığınız şey bir dizi değil - bir nesnedir (JavaScript'teki nesneler PHP'deki ilişkilendirici dizilerin eşdeğeridir).

JavaScript değişmez sözdizimini nesne kullanabilirsiniz:

var itemIds = { 
    item1: 15, 
    item2: 40, 
    item3: 72 
}; 

JavaScript nesnesi üyeleri nokta gösterimi veya dizi indis, şöyle üzerinden erişilebilir :

itemIds.item1; 
itemIds['item1']; 

Sen ikincisini kullanmanız gerekir üye adını bir dize olarak seçtiyseniz.

+0

Vay be bu harika bir cevap örneklerini verdiğiniz için teşekkür ederiz. – Jake

2

bu gibi arama belirtmek için Nesne Değişmez gösterimi kullanılarak deneyin:

var itemIds = { 
    "item1" : 15, 
    "item2" : 40 
    ... 
}; 

Erişim hala bu gibi çalışması gerekir:

var item1Value = itemIds["item1"]; 
+2

Arg ... Yeterince hızlı değildim. – some

+1

Teknik olarak, JSON, veri değişimi için JavaScript nesnesi ve dizi değişmezlerinin kullanımıdır - gösterdiğiniz şey bir nesne hazırlayıcısıdır. – Skilldrick

+0

Oh, "Notasyon" biti adından, sözdizimini tanımladığı varsayılan addan varsaydım. Nesne Literal öyle! –