SORU
11 Kasım 2008, Salı


Bir " element düzeni; ( ... ) " döngü

"..."Hashtables ile Javascript döngü içinde döngü ilan sırasına göre/elemanlar? bu mu Sırayla yapmıyor olan bir tarayıcı var mı?
Kullanmak istediğiniz nesneyi ilan edilecekbir kezve asla değiştirilecek.

Ben varsayalım:

var myObject = { A: "Hello", B: "World" };

Ve ben daha onları kullanın

for (var item in myObject) alert(item   " : "   myObject[item]);

Bekleyebilirim 'A: ""' her zaman önce gelir 'B : ""' en iyi tarayıcılarda? Dünya Merhaba

CEVAP
11 Kasım 2008, Salı


Quoting John Resig:

Şu anda sırayla tüm büyük tarayıcılar bir nesnenin özellikleri üzerinde döngü tanımlanmış olan. Chrome de bu, birkaç durumlar hariç. [...] Bu davranış açıkça ECMA belirtimi tarafından tanımsız bırakılır. ECMA-262, bölüm 12.6.4:

Özellikleri sıralanıyor mekaniği ... uygulamaya bağlıdır.

Ancak, şartname uygulama oldukça farklı. Tüm modern uygulamaları sırayla tanımlanmış nesne özellikleri ile ECMA yineleme. Bu nedenle Krom takım, bu bir hata olarak kabul etti ve bunu düzeltecektir.

Tüm saygı tanımı sipariş tarayıcılar olmayan sayısal her özellik adı için with the exception of Chrome ve Opera. Bu iki tarayıcı özelliklerini sıralı olmayan sayısal ilk özelliği (bu uyguladıkları dizileri ile ne alakası var) öne geçti. Sipariş Object.keys için de aynıdır.

Bu örnek ne olacağını açıkça belirtmelidir

var obj = {
  "first":"first",
  "2":"2",
  "34":"34",
  "1":"1",
  "second":"second"
};
for (var i in obj) { console.log(i); };
// Order listed:
// "1"
// "2"
// "34"
// "first"
// "second"

Bu teknik bu her an değişebilir aslında daha az önemlidir. Bu şekilde kalan şeyler güvenmeyin.

Kısacası:Eğer sipariş sizin için önemli ise bir dizi kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • Kindness

    Kindness

    23 Ocak 2006
  • ThePhestor

    ThePhestor

    22 Mart 2011

İLGİLİ SORU / CEVAPLAR