Çok boyutlu diziler

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Çok boyutlu diziler öğe olarak başka diziler içerir Örneğin, dizinlenmiş dizeler dizisi olarak saklanan bir görev listesini göz önünde bulundurun:

var tasks:Array = ["wash dishes", "take out trash"];

Haftanın her günü için ayrı bir görevler listesi saklamak istiyorsanız, haftanın her günü için tek bir öğe içeren çok boyutlu bir dizi oluşturabilirsiniz. Her öğe, görevler listesinin saklandığı tasks dizisine benzer şekilde dizinlenmiş bir dizi içerir. Çok boyutlu dizilerde, dizinlenmiş veya ilişkilendirilebilir dizilerin herhangi bir birleşimini kullanabilirsiniz. Aşağıdaki bölümlerde verilen örnekler, iki dizinlenmiş dizi veya dizinlenmiş dizilerin ilişkilendirilebilir bir dizisini kullanır. Pratik amacıyla diğer birleşimleri de denemek isteyebilirsiniz.

İki dizinlenmiş dizi

İki dizinlenmiş dizi kullandığınızda, sonucu bir tablo veya elektronik tablo olarak görselleştirebilirsiniz. Birinci dizinin öğeleri, tablonun satırlarını temsil ederken, ikinci dizinin öğeleri de sütunları temsil eder.

Örneğin, aşağıdaki çok boyutlu dizi, haftanın her bir günü için görev listelerini izlemek üzere iki dizinlenmiş dizi kullanır. Array sınıfı yapıcısı kullanılarak birinci dizi ( masterTaskList ) oluşturulur. 0 değeri Pazartesi'yi ve 6 değeri Pazar'ı temsil edecek şekilde, dizinin her bir öğesi haftanın bir gününü temsil eder. Bu öğeler, tablodaki satırlar olarak değerlendirilebilir. masterTaskList dizisinde oluşturduğunuz yedi öğenin her birine bir dizi değişmezi atayarak her günün görevini oluşturabilirsiniz. Dizi değişmezleri, tablodaki sütunları temsil eder.

var masterTaskList:Array = new Array(); 
masterTaskList[0] = ["wash dishes", "take out trash"]; 
masterTaskList[1] = ["wash dishes", "pay bills"]; 
masterTaskList[2] = ["wash dishes", "dentist", "wash dog"]; 
masterTaskList[3] = ["wash dishes"]; 
masterTaskList[4] = ["wash dishes", "clean house"]; 
masterTaskList[5] = ["wash dishes", "wash car", "pay rent"]; 
masterTaskList[6] = ["mow lawn", "fix chair"];

Dizi erişimi ( [] ) operatörünü kullanarak görev listelerinden herhangi birinde bulunan tek tek öğelere erişebilirsiniz. Birinci ayraç kümesi haftanın gününü temsil ederken, ikinci ayraç kümesi de o günün görev listesini temsil eder. Örneğin, ikinci görevi Çarşamba'nın listesinden almak üzere Çarşamba için dizin 2'yi ve listedeki ikinci görev için dizin 1'i kullanın.

trace(masterTaskList[2][1]); // output: dentist

Birinci görevi Pazar'ın listesinden almak üzere Pazar için dizin 6'yı ve listedeki birinci görev için dizin 0'ı kullanın.

trace(masterTaskList[6][0]); // output: mow lawn

Dizinlenmiş bir dizi ile ilişkilendirilebilir dizi

Tek tek dizileri daha kolay erişilebilir duruma getirmek üzere haftanın günleri için ilişkilendirilebilir bir dizi ve görev listeleri için dizinlenmiş bir dizi kullanabilirsiniz. İlişkilendirilebilir bir dizi kullanılması, haftanın belirli bir günü ifade edilirken nokta sözdizimini kullanmanıza olanak sağlar ancak bu durumda ilişkilendirilebilir dizinin her bir öğesine erişmek için fazladan çalışma zamanı işleme maliyeti oluşur. Aşağıdaki örnek, haftanın her bir günü için bir anahtar ve değer çiftiyle, bir görev listesinin temeli olarak ilişkilendirilebilir bir dizi kullanır:

var masterTaskList:Object = new Object(); 
masterTaskList["Monday"] = ["wash dishes", "take out trash"]; 
masterTaskList["Tuesday"] = ["wash dishes", "pay bills"]; 
masterTaskList["Wednesday"] = ["wash dishes", "dentist", "wash dog"]; 
masterTaskList["Thursday"] = ["wash dishes"]; 
masterTaskList["Friday"] = ["wash dishes", "clean house"]; 
masterTaskList["Saturday"] = ["wash dishes", "wash car", "pay rent"]; 
masterTaskList["Sunday"] = ["mow lawn", "fix chair"];

Nokta sözdizimi, birden çok ayraç kümesinin önlenmesini sağlayarak kodu daha okunaklı hale getirir.

trace(masterTaskList.Wednesday[1]); // output: dentist 
trace(masterTaskList.Sunday[0]);// output: mow lawn

for..in döngüsünü kullanarak görev listesini yineleyebilirsiniz, ancak her bir anahtarla ilişkilendirilmiş değere erişmek için nokta sözdizimi yerine dizi erişimi ( [] ) operatörünü kullanmanız gerekir. masterTaskList öğesi ilişkilendirilebilir bir dizi olduğundan, aşağıdaki örnekte gösterildiği gibi, öğeler mutlaka beklediğiniz sırada alınmayabilir:

for (var day:String in masterTaskList) 
{ 
    trace(day + ": " + masterTaskList[day]) 
} 
/* output: 
Sunday: mow lawn,fix chair 
Wednesday: wash dishes,dentist,wash dog 
Friday: wash dishes,clean house 
Thursday: wash dishes 
Monday: wash dishes,take out trash 
Saturday: wash dishes,wash car,pay rent 
Tuesday: wash dishes,pay bills 
*/