JavaScript Dizi
- Önceki Sayfa JS Sayısal Özellikler
- Sonraki Sayfa JS Dizi Yöntemleri
İhtiyari dersler
Kurs tavsiyesi:
JavaScript dizileri, birçok değeri tek bir değişkende saklamak için kullanılır.
Nelerdir dizi?
Dizi, birden fazla değeri tek seferde saklayabilen özel bir değişkendir. Bir proje listesi (örneğin, araç markaları listesi) varsa, araç markalarını tek bir değişkende saklamak şu şekilde olmalıdır: var car1 = \"Saab\";
var car2 = \"Volvo\";
var car3 = \"BMW\";
Ancak, tüm araçları dolaşmak ve belirli bir değeri bulmak istiyorsanız? Üç araç markası yerine üç yüz araç markası olsaydı ne olurdu?
Çözüm, dizi!
Dizi, birçok değeri tek bir adla saklayabilir ve bu değerlere indeks numarası ile erişebilir.
Dizi oluşturma
Dizi metni, JavaScript dizisini oluşturmanın en basit yöntemidir. Gramer: vararray-name= [ item1,
Örnek
var cars = ["Saab", "Volvo", "BMW"];
item2
Örnek
, ...]; Boşluklar ve satır boşlukları önemli değildir. Tanımlama çok satırlı olabilir: var cars = [ "Saab", "Volvo",
"BMW"
];
Son elemanın ardından virgül yazmayın (örneğin, "BMW",).
Tarayıcılar arası uyumluluk sorunları olabilir.
Örnek
JavaScript anahtar kelimesi new kullanılarak
Aşağıdaki örnek de dizi oluşturur ve ona değer atar: new Array()
.
var cars = new Array("Saab", "Volvo", "BMW");
Yukarıdaki iki örnek tamamen aynı etki eder. Kullanılmaz:
Kısa, okunabilir ve hızlı çalışma için ilk yöntemi (dizi metin yöntemini) kullanın.İndeks numarası (alt numarası)bir dizi elemanını referans almak için kullanılır.
Bu cümle, cars içindeki ilk elemanın değerini erişir:
var name = cars[0];
Bu cümle, cars içindeki ilk elemanı değiştirir:
cars[0] = \"Opel\";
Örnek
var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars[0];
[0] dizi içindeki ilk elemandır. [1] ikincisidir. Dizi indeksleri 0'dan başlar.
Dizi elemanlarını değiştirmek
Bu cümle, cars içindeki ilk elemanın değerini değiştirmiştir:
cars[0] = \"Opel\";
Örnek
var cars = ["Saab", "Volvo", "BMW"]; cars[0] = \"Opel\"; document.getElementById("demo").innerHTML = cars[0];
Tam diziye erişim
JavaScript ile, dizi adını kullanarak tam diziye erişebilirsiniz:
Örnek
var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars;
Dizi nesnedir
Dizi, özel bir nesne türüdür. JavaScript'te dizilere typeof
işleçler "object" döndürür.
Ancak, JavaScript dizileri en iyi şekilde dizi olarak tanımlanmalıdır.
Dizi kullanımısayıonun "elemanlarına" erişmek için kullanılır. Bu örnekte,person[0]
Bill döndürülür:
Dizi:
var person = ["Bill", "Gates", 62];
Nesnelerİsimonun "üyelerine" erişmek için kullanılır. Bu örnekte,person.firstName
Bill döndürülür:
Nesne:
var person = {firstName:"Bill", lastName:"Gates", age:19};
Dizi elemanları nesneler olabilir
JavaScript değişkenleri nesneler olabilir. Diziler özel bir nesne türüdür.
Bu yüzden, aynı dizi içinde farklı türdeki değişkenler saklayabilirsiniz.
Dizide nesneler saklayabilirsiniz. Dizide fonksiyonlar saklayabilirsiniz. Hatta dizide dizi saklayabilirsiniz:
myArray[0] = Date.now; myArray[1] = myFunction; myArray[2] = myCars;
Dizi özellikleri ve yöntemleri
JavaScript dizilerinin gerçek gücü, dizilerin özellikleri ve yöntemlerinde saklıdır:
Örnek
var x = cars.length; // length özelliği eleman sayısını döndürür var y = cars.sort(); // sort() yöntemi diziyi sıralar
Önümüzdeki bölümde dizi yöntemlerini öğreneceğiz.
length özelliği
length
özellik, dizinin uzunluğunu (dizi elemanlarının sayısını) döndürür.
Örnek
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.length; // fruits uzunluğu 4'tür
length
özellikler her zaman en yüksek dizi indeksinden (dizgi) büyük olur.
ilk dizi elemanına erişim
Örnek
fruits = ["Banana", "Orange", "Apple", "Mango"]; var first = fruits[0];
son dizi elemanına erişim
Örnek
fruits = ["Banana", "Orange", "Apple", "Mango"]; var last = fruits[fruits.length - 1];
dizi elemanlarını taramaktır
Diziyi taraymanın en güvenli yolu "for
"Döngü:"
Örnek
var fruits, text, fLen, i; fruits = ["Banana", "Orange", "Apple", "Mango"]; fLen = fruits.length; text = "<ul>"; for (i = 0; i < fLen; i++) { text += "<li>" + fruits[i] + "</li>"; }
Ayrıca Array.foreach()
Fonksiyon:
Örnek
var fruits, text; fruits = ["Banana", "Orange", "Apple", "Mango"]; text = "<ul>"; fruits.forEach(myFunction); text += "</ul>"; function myFunction(value) { text += "<li>" + value + "</li>"; }
dizi elementlerine eklemek
Dizi elementlerine eklemek için en iyi yöntem push()
Yöntemler:
Örnek
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Lemon"); // fruits'a yeni bir element (Lemon) eklenir
Ayrıca length
Özellikler, dizilere yeni element eklemek için kullanılabilir:
Örnek
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[fruits.length] = "Lemon"; // fruits'a yeni bir element (Lemon) eklenir
Uyarı!
En yüksek indeksli elementi eklemek, dizide tanımlanmamış "delikler" oluşturabilir:
Örnek
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[6] = "Lemon"; // fruits'a yeni bir element (Lemon) eklenir
İlişkili diziler
Birçok programlama elementi adlandırılmış indeksli dizileri destekler.
Adlandırılmış indeksli diziler, ilişkili diziler (veya harita) olarak adlandırılır.
JavaScript desteklenmezadlandırılmış indeksli dizilerle kullanılabilir.
JavaScript'te, diziler sadecesayısal indeksler.
Örnek
var person = []; person[0] = "Bill"; person[1] = "Gates"; person[2] = 62; var x = person.length; // person.length 3 döndürür var y = person[0]; // person[0] "Bill" döndürür
Uyarı!
Adlandırılmış indeks kullanırsanız, JavaScript diziyi standart bir nesneye dönüştürür.
Sonra, tüm dizinin yöntemleri ve özellikleri yanlış sonuçlar üretir.
Örnek:
var person = []; person["firstName"] = "Bill"; person["lastName"] = "Gates"; person["age"] = 62; var x = person.length; // person.length 0 döndürecektir var y = person[0]; // person[0] undefined döndürecektir
Dizi ve nesne arasındaki fark
JavaScript'teDiziKullanınsayısal indeksler.
JavaScript'tenesneKullanınAdlandırılmış indeksler.
Diziler, sayısal indekslere sahip özel nesne türleridir.
Diziyi ne zaman, nesneyi ne zaman kullanmalıyım?
- JavaScript bağlantılı dizileri desteklemez
- Eğer eleman adlarınıdizgi (metin)isenesne.
- Eğer eleman adlarınısayıiseDizi.
new Array() kullanmayın
JavaScript'in yerleşik dizisi yapıcılarını kullanmaya gerek yok new Array()
.
Kullanın []
Bunun yerine!
Aşağıdaki iki farklı cümle points adında yeni bir boş diziyi oluşturur:
var points = new Array(); // kötü var points = []; // iyi
Aşağıdaki iki farklı cümle altı sayı içeren yeni bir diziyi oluşturur:
var points = new Array(40, 100, 1, 5, 25, 10); // kötü var points = [40, 100, 1, 5, 25, 10]; // iyi
new
Anahtar kelimeler kodu karmaşıklaştırabilir. Ayrıca bazı beklenmedik sonuçlar üretebilir:
var points = new Array(40, 100); // iki eleman içeren diziyi oluşturur (40 ve 100)
Bir elemanı sildiğinizde ne olur?
var points = new Array(40); // 40 adet tanımlanmamış eleman içeren diziyi oluşturur!!!
Diziyi nasıl tanımlarım
Sıkça karşılaşılan sorunlar: Bir değişkenin dizisi olup olmadığını nasıl anlarım?
Sorun, JavaScript işlevatörlerinde typeof
döndürür "object
":
var fruits = ["Banana", "Orange", "Apple", "Mango"]; typeof fruits; // object döndürür
typeof işlevi "object" döndürür çünkü JavaScript dizileri nesnelerdir.
Çözüm 1:
Bu sorunu çözmek için ECMAScript 5 yeni bir yöntem tanımlamıştır Array.isArray()
:
Array.isArray(fruits); // true döner
Bu yöntemin sorunu ECMAScript 5'tedir Eski tarayıcıları desteklemiyor.
Çözüm 2:
Kendi isArray()
Bu fonksiyonla sorunu çözmek için:
function isArray(x) { return x.constructor.toString().indexOf("Array") > -1; }
Eğer parametre diziyse, yukarıdaki fonksiyon her zaman true döner.
veya daha doğru bir açıklamayle: Eğer nesne örneği "Array" kelimesini içeriyorsa true döner.
Çözüm 3:
Eğer nesne belirtilen yapıcı tarafından oluşturulmuşsa: instanceof true dönen operatörler:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits instanceof Array // true döner
- Önceki Sayfa JS Sayısal Özellikler
- Sonraki Sayfa JS Dizi Yöntemleri