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
Ş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.