Bir javascript dizisinin uzunluğunun nasıl belirleneceği ve onlarla çalışmak için daha birçok fonksiyon. Bir diziden çıkarma

Bu derste dizilerle tanışacağız, onları nasıl oluşturacağımızı öğreneceğiz, elemanları üzerinde işlemler gerçekleştireceğiz ve ayrıca onlarla çalışırken kullanılabilecek temel yöntem ve özelliklere bakacağız.

JavaScript'te dizi nedir?

Bir dizi değerlerin sıralı koleksiyonu. Bu koleksiyondaki değerlere öğe adı verilir. Dizideki her öğenin, indeks adı verilen kendi seri numarası (numara) vardır. İndeksler 0'dan başlayarak numaralandırılır.

Aşağıdaki şekil 5 öğeden oluşan sayısal bir diziyi göstermektedir. Bu dizinin elemanları şu verileri içerir: 123 (indeks 0), 7 (indeks 1), 50 (indeks 2), -9 (indeks 3), 24 (indeks 4).

Bir dizi oluşturma (bildirme)

JavaScript'te diziler oluşturmak genellikle kullanılarak yapılır. dizi değişmezi.

Bir dizi değişmezi, virgülle ayrılmış öğelerin listesini içeren köşeli parantezlerden oluşur.

Örneğin:

Var boş = ; // boş dizi var sayıları = ; // sayısal dizi var arr = ; //çeşitli veri türlerini içeren dizi

Bir JavaScript dizisindeki değerlerin aynı türde olması gerekmez. Onlar. Bir dizi farklı veri türlerinin değerlerini içerebilir.

Belirli bir dizi öğesine indeksi tarafından erişilir. Bu işleme indeksleme işlemi de denir.

Örneğin:

// 3 öğeden oluşan bir dizi oluşturun var akıllı telefonRenkleri = ["Siyah", "Beyaz", "Gri"]; // tarayıcı konsolunda, 0 ve 2 indeksli akıllı telefonRenkleri dizi elemanlarının değerlerini görüntüle console.log("0 indeksli akıllı telefonRenkleri dizi elemanının değeri: " + akıllı telefonRenkleri); // "İndeks 0'a sahip akıllı telefonRenkleri dizi öğesinin değeri: Siyah" console.log("İndeks 2'ye sahip akıllı telefonRenkleri dizi öğesinin değeri: " + akıllı telefonRenkleri); // "0 indeksli akıllı telefonRenkleri dizi elemanının değeri: Gri" // indeksi 1 olan akıllı telefonRenkleri dizi elemanının değerini "Kırmızı" olarak değiştirin. akıllı telefonRenkleri = "Kırmızı"; // ["Siyah", "Kırmızı", "Gri"] // indeks 3'e sahip akıllı telefonRenkleri dizi öğesini "Mavi" değerine ayarlayın. akıllı telefonRenkleri = "Mavi"; // ["Siyah", "Kırmızı", "Gri", "Mavi"]

Yalnızca statik değerleri değil aynı zamanda ifadeleri de dizi öğesi değerleri olarak kullanabilirsiniz:

Var uzunlukA = 7, genişlikA = 5; var noktası = ;

Nesneler dizi öğesi değerleri olarak kullanılabilir.

Var noktaları = [ (x1: 5, y1: 3), (x1: 7, y1: 10), (x1: 12; y1: 0) ]; // 3 nesneden oluşan dizi

Dizi oluşturmanın başka bir yolu Array yapıcı fonksiyonunun çağrılmasından oluşur.

Boş bir dizi oluşturmak için bağımsız değişken içermeyen bir yapıcı işlev çağrısı kullanılır.

Var boş = yeni Dizi(); // boş dizi

Bu dizi oluşturma yöntemi değişmez değere eşdeğerdir.

Yapıcı işlevine argüman olarak bir sayı belirtirseniz, belirtilen sayıda öğeden oluşacak bir dizi oluşturacaktır. Üstelik tüm bu unsurların değeri tanımsız olacaktır.

Var arr = new Array(5); // 5 elemandan oluşan dizi (eleman değerleri tanımsızdır)

Yapıcı fonksiyona parantez içinde birden fazla değer veya sayısal olmayan bir değer iletirseniz, kendisine iletilen argümanlardan bir dizi oluşturacaktır.

Diğer birçok programlama dilinin aksine, JavaScript'teki dizilerin boyutları otomatik olarak değişir; doğası gereği dinamiktirler. Bu tür dizilere herhangi bir boyut verilmesine gerek yoktur. JavaScript dizilerinin bir diğer ayırt edici özelliği de aynı dizinin farklı öğelerinin farklı türde veriler içerebilmesidir.

uzunluk özelliği (dizi uzunluğu)

Dizinin uzunluğunun (öğe sayısı) belirlenmesi uzunluk özelliği kullanılarak yapılır.

//Array fonksiyonundaki elemanların değerlerini listeleyerek bir dizi oluşturun var volümHDDs = new Array("500Gb", "1Tb", "2Tb"); //lengthArray değişkenini hacimHDDs dizisinin uzunluğuna atayın var uzunlukArray = hacimHDDs.uzunluk;

Bir dizinin ilk elemanı nasıl elde edilir

Bir dizinin ilk elemanının değerini almak, bu dizinin köşeli parantezleri içinde 0 sayısını belirterek yapılır:

//3 elemandan oluşan bir dizi oluşturuluyor var volümHDDs = new Array("500Gb", "1Tb", "2Tb"); //dizinin ilk elemanının değerini alıyoruz var ilkValue = hacimHDDs;

Bir dizinin son elemanı nasıl alınır

Bir dizinin son öğesinin değeri, bu dizinin köşeli parantezleri içinde dizi_adı.uzunluk-1 ifadesinin belirtilmesiyle elde edilir:

//3 elemandan oluşan bir dizi oluşturuluyor var volümHDDs = new Array("500Gb", "1Tb", "2Tb"); //dizinin son elemanının değerini alıyoruz var lastValue = VolumeHDDs;

Bir dizi üzerinde yineleme

Dizi elemanlarının yinelenmesi for döngüsü kullanılarak yapılır.

Örneğin, dizinin tüm öğelerini yineleyelim ve değerlerini tarayıcı konsolunda (F12) görüntüleyelim:

//4 elemandan oluşan nameStudents dizisi oluşturuluyor var nameStudents = new Array("Petya", "Vasya", "Kolya", "Maxim"); //dizi elemanlarını 0'dan dizi uzunluğu-1'e kadar yineleyin (var i=0; i<= nameStudents.length-1; i++) { console.log(i+1 + " элемент массива = " + nameStudents[i]); }

Silme operatörünün amacı nedir?

Silme operatörü bir diziden bir öğeyi kaldırmak için değil, belirli bir dizi öğesine tanımsız bir değer atamak için kullanılır.

Var namePlanets = new Array("Venüs", "Merkür", "Dünya", "Mars"); namePlanets'i sil; for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizilerle çalışmaya yönelik işlevler (Dizi nesnesi yöntemleri)

Array nesnesi dizilerle çalışmak için aşağıdaki yöntemleri (işlevleri) içerir:

  • vardiya
  • vites değiştirme
  • dilim
  • birleştirme
  • bölmek
  • tersi

Push yöntemi (dizinin sonuna bir öğe ekleme)

Push yöntemi dizinin sonuna bir öğe eklemek için tasarlanmıştır. Bu elemanın değeri bu yönteme parametre olarak belirtilir. Sonuç olarak push yöntemi, eklenenleri dikkate alarak dizideki öğe sayısını döndürür.

Var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars"]; namePlanets.push("Jüpiter"); // 5 console.log(namePlanets); // ["Venüs", "Merkür", "Dünya", "Mars", "Jüpiter"]

pop yöntemi (dizideki son öğenin kaldırılması)

Pop yöntemi bir dizideki son öğeyi kaldırmak için tasarlanmıştır. Bu yöntemin hiçbir parametresi yoktur. Sonuç olarak dizinin son (kaldırılan) öğesinin değerini döndürür.

Var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars"]; namePlanets.pop(); // "Mars" console.log(namePlanets); // ["Venüs", "Merkür", "Dünya"]

Shift yöntemi (diziden ilk öğenin kaldırılması)

Shift yöntemi, diziden ilk öğeyi kaldırmak için tasarlanmıştır; 0 indeksine sahip eleman. Dizinin diğer tüm elemanları başlangıca kaydırılır, yani. her biri için indeks 1 azaltılır. Bu yöntem, sonuç olarak kaldırılan öğenin değerini döndürür.

Var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars"]; namePlanets.shift(); // "Venüs" console.log(namePlanets); // ["Merkür", "Dünya", "Mars"]

unshift yöntemi (dizinin başına bir öğe eklemek)

Unshift yöntemi, dizinin başlangıcına (diğer öğelerden önce) bir öğe eklemek için tasarlanmıştır. Bu elemanın değeri bu yönteme parametre olarak belirtilir. Sonuç olarak bu yöntem, eklenenleri dikkate alarak dizideki öğe sayısını döndürür.

Var namePlanets = ["Merkür", "Dünya", "Mars", "Jüpiter"]; namePlanets.unshift("Venüs"); // 5 console.log(namePlanets); // ["Venüs", "Merkür", "Dünya", "Mars", "Jüpiter"]

dilim yöntemi (dizinin bir bölümünü kopyalama)

Dilim yöntemi bir dizinin bir bölümünü kopyalamak için tasarlanmıştır. Ancak orijinal diziyi değiştirmez, ancak sonuç olarak seçilen öğelerden oluşan yeni bir dizi döndürür.

Dilim yönteminin 2 parametresi vardır:

  • 1 parametre (gerekli) - öğelerin kopyalanmaya başlanacağı öğenin dizinini belirtmeyi amaçlamaktadır;
  • Parametre 2 (isteğe bağlı) - kopyalanması gereken öğenin dizinini belirtmeyi amaçlamaktadır (bu durumda yeni diziye dahil edilmez). Eğer belirtmezseniz belirtilen dizinin sonuna kadar olan öğeler kopyalanacaktır.
var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars", "Jüpiter"]; var newNamePlanets = namePlanets.slice(2, 4); // ["Dünya", "Mars"]

Ekleme yöntemi (bir dizinin içeriğini değiştirme)

Ekleme yöntemi bir dizinin içeriğini değiştirmek için tasarlanmıştır. Bir diziye hem eleman eklemek hem de çıkarmak için kullanılabilir.

Ekleme yönteminin sözdizimi şöyledir:

Array.splice(startIndex, deleteCount [, element1[, element2[, ...]]]); /* startIndex (gerekli) - diziyi değiştirmeye başlanacak öğenin başlangıç ​​dizini. StartIndex olarak dizinin uzunluğundan daha büyük bir sayı belirtirseniz, başlangıç ​​dizini dizinin sonuna ayarlanacaktır. startIndex olarak negatif bir sayı belirtirseniz, başlangıç ​​öğesi sondan itibaren sayılacaktır. deleteCount (gerekli) - diziden kaç öğenin silinmesi gerektiğini belirten bir sayı. Diziden eleman silinmesi gerekmiyorsa deleteCount 0 olarak ayarlanmalıdır. Bundan sonra diziye eklenecek en az bir yeni eleman belirtmelisiniz. startIndex'ten başlayarak dizide kalan öğelerin sayısını aşacak bir sayıyı deleteCount olarak belirtirseniz, bu durumda bunlar yine de silinecektir (yani başlangıç ​​dizininden başlayarak dizinin sonuna kadar olan tüm öğeler) element1, element2, ... (isteğe bağlı) - diziye eklenmesi gereken öğeler. */

Ekleme yöntemini kullanma örnekleri.

Bir diziden bazı öğeleri kaldırmak için splice yöntemini kullanma.

Var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars"]; namePlanets.splice(2, 2); //["Dünya", "Mars"] console.log(isimPlanets); // ["Venüs", "Merkür"]

Bir diziden bir öğeyi kaldırmak ve ona yenilerini eklemek için splice yöntemini kullanmak.

Var namePlanets = ["Venüs", "Merkür", "Dünya", "Mars"]; namePlanets.splice(1, 1, "Uranüs", "Neptün", "Satürn"); // ["Merkür"] console.log(isimPlanets); // ["Venüs", "Uranüs", "Neptün", "Satürn", "Dünya", "Mars"]

Splice yöntemini yalnızca bir diziye yeni öğeler eklemek için kullanmak.

Var namePlanets = ["Jüpiter", "Satürn", "Uranüs"]; namePlanets.splice(0, 0, "Venüs", "Merkür", "Dünya", "Mars"); // console.log(isimPlanets); // ["Venüs", "Merkür", "Dünya", "Mars", "Jüpiter", "Satürn", "Uranüs"]

join yöntemi (diziyi dizeye dönüştürme)

join yöntemi, bir dizinin tüm öğelerini bir dizede birleştirmek için tasarlanmıştır.

Birleştirme yöntemi söz dizimi:

Array.join(); /* ayırıcı (isteğe bağlı) - her dizi öğesi arasında bağlantı dizesi olarak kullanılan bir ayırıcı. Bu parametre belirtilmezse bağlantı dizesi olarak `` kullanılacaktır. Parametre olarak boş bir dize belirtirseniz, döndürülen dizedeki dizi öğeleri hiçbir şeyle ayrılmayacaktır */

Var meyveleri = ["Üzüm", "Üzüm", "Frenk üzümü", "Kuşburnu"]; var berryStr1 = berry.join(); // "Üzüm, Üzüm, Kuş Üzümü, Kuşburnu" var berriesStr2 = berries.join(""); // "ÜzümÜzümKuşburnuKuşburnu" var berriesStr3 = berry.join(", "); // "Üzüm, Üzüm, Kuş üzümü, Kuşburnu" var berriesStr4 = berries.join(" + "); // "Üzüm + Üzüm + Kuş Üzümü + Kuşburnu"

Ayırıcı olarak dize olmayan bir şey kullanırsanız, bu bir dizeye dönüştürülür.

Var meyveleri = ["Üzüm", "Üzüm", "Frenk üzümü", "Kuşburnu"]; var berryStr1 = berry.join(false); // "GrapesfalseGrapesfalseCurrantfalseRosehip" var berriesStr2 = berries.join(4/2); // "Grapes2Grapes2Currant2Rose Hip" Değer olarak boş veya tanımsız olan dizi elemanları boş dizeye dönüştürülecektir. var dizi = ; var arrStr = arr.join(", "); // "0, 5, -4"

Bir dizeyi diziye dönüştürme - bölme

Bölme yöntemi, bir dizeyi diziye dönüştürmek için tasarlanmıştır. Bu yöntemin, bu dizenin bir dize dizisine bölüneceği temel alınarak bir dize belirleyebileceğiniz bir parametresi vardır.

Var strElementComputers = "Sistem birimi, Monitör, Klavye, Fare, Hoparlörler, Yazıcı"; var elementComputers = strElementComputers.split(", "); console.log("Dizideki öğe sayısı: " + elementComputers.length); for (var i=0; i<= elementComputers.length-1; i++) { console.log(i + " элемент массива = " + elementComputers[i]); }

Dizi öğelerini ters sırada yeniden sıralama - ters

Ters yöntem, dizi öğelerini ters sırada yeniden sıralamak için tasarlanmıştır.

Var namePlanets = new Array("Venüs", "Merkür", "Dünya", "Mars"); namePlanets.reverse(); console.log("Dizideki öğe sayısı: " + namePlanets.length); for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizi öğelerini sıralama - sıralama

Dizi elemanlarını sıralamak için sort metodu kullanılır. Varsayılan olarak bu yöntem diziyi dizeler halinde sıralar.

Var namePlanets = new Array("Venüs", "Merkür", "Dünya", "Mars"); namePlanets.sort(); console.log("Dizideki öğe sayısı: " + namePlanets.length); for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

21.06.2017 12:17

JavaScript'te bir nesne dizisinin boyutunu hesaplamak için dizinin uzunluk özelliğini kullanın.

Var arr = ["birinci", "ikinci"]; console.log(dizi.uzunluk); // 2

Javascript'teki dizilerin eksik indeksleri olabilir. Örneğin

Var dizi = ; dizi = "ilk"; dizi = "ikinci";

uzunluk özelliği dizinin maksimum indeksini + 1 döndürür. Verilen örnekte uzunluk = 5.

Javascript'te bir dizideki öğe sayısını hesaplamak

Array.prototype.count = function())( var result = 0; for(var i = 0; i< this.length; i++) if (this[i] != undefined) result++; return result; }

Kullanım örneği

Var dizi = ; dizi = "ilk"; dizi = "ikinci"; console.log(arr.count()); //2

Ayrıca uzunluk özelliğine bir değer atayabilirsiniz. Bu, mevcut bir dizinin uzunluğunu azaltmanıza olanak tanır.

Var arr = ["birinci", "ikinci", "üçüncü"]; dizi.uzunluk = 2; console.log(arr); // ["birinci, ikinci"]

Javascript'te bir dizinin boyutunu bayt cinsinden hesaplama

Diziler normal nesnelerdir, dolayısıyla bir dizinin boyutunu bayt cinsinden hesaplamak, başka herhangi bir nesnenin boyutunu hesaplamaktan farklı değildir. Ne yazık ki, javascript boyutu hesaplamak için bir API sağlamamaktadır, dolayısıyla bunu kendiniz hesaplamanız gerekecektir. Bu şu şekilde yapılır: nesnenin tüm özelliklerini inceleriz; eğer özellik ilkel tipteyse, bu tipteki bir örneğin boyutunu genel sonuca ekleriz; eğer özellik bir nesne içeriyorsa yinelemeli olarak hesaplarız bedeni.

Function sizeOf(obj) ( var bytes = 0; if(obj !== null && obj !== tanımsız) ( switch(typeof obj) ( case "number": bytes += 8; break; case "string": bayt += obj.length * 2; break; case "boolean": bytes += 4; break; case "object": for(var key in obj) ( bytes += sizeOf(obj); ) break; ) ) dönüş baytları ; );

Yöntem doğru değildir ve pek çok sorunu vardır; örneğin sonsuz bir döngüye girme olasılığı vardır.

Son güncelleme: 26.03.2018

Array nesnesi bir diziyi temsil eder ve diziyi değiştirebileceğimiz bir dizi özellik ve yöntem sağlar.

Bir Dizinin Başlatılması

Köşeli parantezleri veya Array yapıcısını kullanarak boş bir dizi oluşturabilirsiniz:

Var kullanıcıları = new Array(); var insanlar = ; console.log(kullanıcılar); // Dizi console.log(kişiler); // Sıralamak

Belirli sayıda öğeye sahip bir diziyi hemen başlatabilirsiniz:

Var kullanıcıları = new Array("Tom", "Bill", "Alice"); var kişiler = ["Sam", "John", "Kate"]; console.log(kullanıcılar); // ["Tom", "Bill", "Alice"] console.log(kişiler); // ["Sam", "John", "Kate"]

Bir dizi tanımlayabilir ve ilerledikçe ona yeni öğeler ekleyebilirsiniz:

Var kullanıcıları = new Array(); kullanıcılar = "Tom"; kullanıcılar = "Kate"; console.log(kullanıcılar); // "Tom" console.log(kullanıcılar); // Tanımsız

Dizinin varsayılan olarak sıfır uzunlukta oluşturulmuş olması önemli değildir. İndeksleri kullanarak, bir dizideki bir veya başka öğeyi belirli bir indekste değiştirebiliriz.

uzunluk

Bir dizinin uzunluğunu bulmak için uzunluk özelliğini kullanın:

Var meyve = new Array(); meyve = "elma"; meyve = "armut"; meyve = "erik"; document.write("Meyve dizisinde " + meyve.uzunluk + " elemanı:
"); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Aslında dizinin uzunluğu son elemanın indeksinin bir artısı kadar olacaktır. Örneğin:

Var kullanıcıları = new Array(); // dizide 0 eleman var user = "Tom"; kullanıcılar = "Kate"; kullanıcılar = "Sam"; for(var i=0; i

Tarayıcı çıktısı:

Tom Kate tanımsız tanımsız Sam

2 ve 3 indeksleri için eleman eklememiş olmamıza rağmen bu durumda dizinin uzunluğu 5 sayısı olacaktır. Sadece 2 ve 3 indeksli elemanların değeri unDefinition olacaktır.

Bir dizi kopyalanıyor. dilim()

Bir diziyi kopyalamak sığ veya yüzeysel (sığ kopya) ve derin (derin kopya) olabilir.

Sığ kopyalama için, bir değişkene diziyi saklayan başka bir değişkenin değerini atamak yeterlidir:

Var kullanıcılar = ["Tom", "Sam", "Bill"]; console.log(kullanıcılar); // ["Tom", "Sam", "Bill"] var kişiler = kullanıcılar; // insanları sığ bir şekilde kopyalamak = "Mike"; // ikinci elemanı değiştirin console.log(users); // ["Tom", "Mike", "Bill"]

Bu durumda, kişi değişkeni kopyalandıktan sonra kullanıcılar değişkeniyle aynı diziyi işaret edecektir. Dolayısıyla insanlardaki öğeler değiştirildiğinde, aslında aynı dizi olduğu için kullanıcılardaki öğeler de değişecektir.

Bu davranış her zaman arzu edilen bir davranış değildir. Örneğin, kopyalama sonrasında değişkenlerin ayrı dizilere işaret etmesini istiyoruz. Bu durumda, dilim() yöntemini kullanarak derin kopyalamayı kullanabilirsiniz:

Var kullanıcılar = ["Tom", "Sam", "Bill"]; console.log(kullanıcılar); // ["Tom", "Sam", "Bill"] var kişiler = kullanıcılar.slice(); // kişileri derin kopyala = "Mike"; // ikinci elemanı değiştirin console.log(users); // ["Tom", "Sam", "Bill"] console.log(kişiler); // ["Tom", "Mike", "Bill"]

Bu durumda kopyalama sonrasında değişkenler farklı dizilere işaret edecektir ve bunları birbirinden ayrı olarak değiştirebiliriz.

dilim() yöntemi ayrıca bir dizinin bir kısmını kopyalamanıza da olanak tanır:

Var kullanıcıları = ["Tom", "Sam", "Bill", "Alice", "Kate"]; var kişiler = kullanıcılar.slice(1, 4); console.log(kişiler); // ["Sam", "Bill", "Alice"]

Slice() yöntemi, diziden değerleri almak için kullanılan başlangıç ​​ve bitiş indekslerini iletir. Yani, bu durumda, yeni diziye yapılan seçim, dahil edilmeden indeks 1'den indeks 4'e gider. Dizi indeksleme sıfırdan başladığı için yeni dizi ikinci, üçüncü ve dördüncü öğeleri içerecektir.

itmek()

Push() yöntemi dizinin sonuna bir öğe ekler:

Var meyve = ; meyve.push("elmalar"); meyve.push("armut"); meyve.push("erikler"); meyve.push("kiraz", kayısı
"); document.write(meyve); // elma, armut, erik, kiraz, kayısı

pop()

pop() yöntemi dizideki son öğeyi kaldırır:

Var meyve = ["elma", "armut", "erik"]; var lastFruit = meyve.pop(); // dizideki son elemanı çıkartın document.write(lastFruit + "
"); document.write("Meyve dizisinde " + meyve.uzunluk + " elemanı:
"); for(var i=0; i ");

Tarayıcı çıktısı:

Erikler Meyve dizisinin 2 öğesi vardır: elma armut

vardiya()

Shift() yöntemi dizideki ilk öğeyi alır ve kaldırır:

Var meyve = ["elma", "armut", "erik"]; var ilkFruit = meyve.shift(); document.write(firstFruit + "
"); document.write("Meyve dizisinde " + meyve.uzunluk + " elemanı:
"); for(var i=0; i ");

Tarayıcı çıktısı:

Elmalar Meyve dizisinin 2 öğesi vardır: armut erik

kaydırmayı kaldır()

unshift() yöntemi dizinin başına yeni bir öğe ekler:

Var meyve = ["elma", "armut", "erik"]; meyve.unshift("kayısı"); document.write(meyve);

Tarayıcı çıktısı:

Kayısı, elma, armut, erik

Bir öğeyi dizine göre kaldırma. birleştirme()

splice() yöntemi belirli bir dizindeki öğeleri kaldırır. Örneğin, üçüncü dizinden öğeleri kaldırmak:

Var kullanıcıları = ["Tom", "Sam", "Bill", "Alice", "Kate"]; var silindi = kullanıcılar.splice(3); console.log(silindi); // [ "Alice", "Kate" ] console.log(kullanıcılar); // [ "Tom", "Sam", "Bill" ]

Slice yöntemi kaldırılan öğeleri döndürür.

Bu durumda silme işlemi dizinin başından itibaren gerçekleşir. Negatif bir indeks iletirseniz, silme işlemi dizinin sonundan itibaren gerçekleştirilir. Örneğin son öğeyi kaldıralım:

Var kullanıcıları = ["Tom", "Sam", "Bill", "Alice", "Kate"]; var silindi = kullanıcılar.splice(-1); console.log(silindi); // [ "Kate" ] console.log(kullanıcılar); // [ "Tom", "Sam", "Bill", "Alice" ]

Yöntemin ek bir sürümü, silinecek bitiş dizinini belirtmenize olanak tanır. Örneğin, birinciden üçüncüye kadar olan dizini silelim:

Var kullanıcıları = ["Tom", "Sam", "Bill", "Alice", "Kate"]; var silindi = kullanıcılar.splice(1,3); console.log(silindi); // [ "Sam", "Bill", "Alice" ] console.log(kullanıcılar); // [ "Tom", "Kate" ]

Ekleme yönteminin başka bir versiyonu, silinen öğeler yerine yeni öğeler eklemenize olanak tanır:

Var kullanıcıları = ["Tom", "Sam", "Bill", "Alice", "Kate"]; var silindi = kullanıcılar.splice(1,3, "Ann", "Bob"); console.log(silindi); // [ "Sam", "Bill", "Alice" ] console.log(kullanıcılar); // [ "Tom", "Ann", "Bob", "Kate" ]

Bu durumda 1. ve 3. indekslerden üç elemanı silip yerine iki eleman ekliyoruz.

birleştirme()

Concat() yöntemi dizileri birleştirmek için kullanılır:

Var meyve = ["elma", "armut", "erik"]; var sebzeler = ["domates", "salatalık", "patates"]; var ürünler = meyve.concat(sebzeler); for(var i=0; i< products.length; i++) document.write(products[i] + "
");

Bu durumda yalnızca aynı türden dizilerin birleştirilmesi gerekli değildir. Çeşitli tipler mümkündür:

Var meyve = ["elma", "armut", "erik"]; var fiyatlar = ; var ürünler = meyve.concat(fiyatlar);

katılmak()

join() yöntemi bir dizinin tüm öğelerini tek bir dizede birleştirir:

Var meyve = ["elma", "armut", "erik", "kayısı", "şeftali"]; var meyveString = meyve.join(", "); document.write(fruitString);

join() yöntemi, dizi öğeleri arasındaki ayırıcıdan geçirilir. Bu durumda ayırıcı olarak virgül ve boşluk (", ") kullanılacaktır.

düzenlemek()

sort() yöntemi diziyi artan düzende sıralar:

Var meyve = ["elma", "armut", "erik", "kayısı", "şeftali"]; meyve.sort(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Tarayıcı çıktısı:

Kayısı armut şeftali erik elma

tersi()

revers() yöntemi diziyi geriye doğru tersine çevirir:

Var meyve = ["elma", "armut", "erik", "kayısı", "şeftali"]; meyve.reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Tarayıcı çıktısı:

Şeftali kayısı erik armut elma

sort() yöntemiyle birlikte diziyi azalan düzende sıralayabilirsiniz:

Var meyve = ["elma", "armut", "erik", "kayısı", "şeftali"]; meyve.sort().reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Tarayıcı çıktısı:

Elma erik şeftali armut kayısı

Bir elementin indeksini bulma

indexOf() ve lastIndexOf() yöntemleri, dizideki bir öğenin ilk ve son eklenmesinin dizinini döndürür. Örneğin:

Var meyve = ["elma", "armut", "erik", "elma", "armut"]; var ilkIndex = meyve.indexOf("elmalar"); var lastIndex = meyve.lastIndexOf("elmalar"); var otherIndex = meyve.indexOf("kiraz"); document.write(firstIndex); // 0 document.write(lastIndex); // 3 document.write(otherIndex); // -1

FirstIndex'in değeri 0'dır çünkü dizideki "apples" satırının ilk dahil edilmesi indeks 0'da ve sonuncusu indeks 3'tedir.

Öğe dizide değilse, bu durumda indexOf() ve lastIndexOf() yöntemleri -1 değerini döndürür.

Her()

Every() yöntemi, tüm öğelerin belirli bir koşulla eşleşip eşleşmediğini kontrol eder:

Var sayıları = [ 1, -12, 8, -4, 25, 42 ]; fonksiyon koşulu(değer, dizin, dizi) ( var sonuç = yanlış; if (değer > 0) ( sonuç = doğru; ) dönüş sonucu; ); var geçti = sayılar.every(koşul); document.write(geçti); // YANLIŞ

Every() yöntemine, koşulu parametre olarak temsil eden bir işlev iletilir. Bu fonksiyon üç parametre alır:

Fonksiyon koşulu(değer, indeks, dizi) ( )

Value parametresi yinelenen geçerli dizi öğesini temsil eder, index parametresi bu öğenin dizinini temsil eder ve dizi parametresi diziye bir başvuru iletir.

Bu fonksiyonda, iletilen öğe değerinin bazı koşullara uygunluğu açısından kontrol edebiliriz. Örneğin, bu örnekte dizinin her öğesinin sıfırdan büyük olup olmadığını kontrol ediyoruz. Daha büyükse true değerini döndürürüz, yani öğe koşulu karşılar. Daha azsa false değerini döndürün; öğe koşulu karşılamıyor.

Sonuç olarak, Numbers.every(condition) yöntemi çağrıldığında, sayılar dizisinin tüm öğelerini yineler ve bunları birer birer koşul fonksiyonuna iletir. Bu işlev tüm öğeler için true değerini döndürürse, Every() yöntemi true değerini döndürür. En az bir öğe koşulla eşleşmezse, Every() yöntemi false değerini döndürür.

bazı()

Some() yöntemi, Every() yöntemine benzer; yalnızca en az bir öğenin bir koşulla eşleşip eşleşmediğini kontrol eder. Ve bu durumda some() yöntemi true değerini döndürür. Dizide koşulla eşleşen hiçbir öğe yoksa false değeri döndürülür:

Var sayıları = [ 1, -12, 8, -4, 25, 42 ]; fonksiyon koşulu(değer, dizin, dizi) ( var sonuç = yanlış; if (değer === 8) ( sonuç = doğru; ) dönüş sonucu; ); var geçirilen = sayılar.bazı(koşul); // doğru

filtre()

filter() yöntemi, some() ve Every() gibi, bir koşul işlevini kabul eder. Ancak aynı zamanda bu koşulu karşılayan öğelerin bir dizisini de döndürür:

Var sayıları = [ 1, -12, 8, -4, 25, 42 ]; fonksiyon koşulu(değer, dizin, dizi) ( var sonuç = yanlış; if (değer > 0) ( sonuç = doğru; ) dönüş sonucu; ); var filteredNumbers = sayılar.filter(koşul); for(var i=0; i< filteredNumbers.length; i++) document.write(filteredNumbers[i] + "
");

Tarayıcı çıktısı:

1 8 25 42

forEach() ve harita()

forEach() ve map() yöntemleri öğeler üzerinde yinelenir ve onlar üzerinde belirli işlemler gerçekleştirir. Örneğin bir dizideki sayıların karelerini hesaplamak için aşağıdaki kodu kullanabilirsiniz:

Var sayıları = [1, 2, 3, 4, 5, 6]; for(var i = 0; i "); }

Ancak forEach() yöntemini kullanarak bu yapıyı basitleştirebilirsiniz:

Var sayıları = [1, 2, 3, 4, 5, 6]; function square(value, index, array) ( var result = değer * değer; document.write("Sayının karesi " + değer + ", " + sonuç + "
"); ); sayılar.forEach(kare);

forEach() yöntemi, öğeler üzerinde yineleme yapılırken yinelenen geçerli öğenin aktarıldığı ve üzerinde işlemler gerçekleştirilen aynı işlevi parametre olarak alır.

Map() yöntemi forEach yöntemine benzer; aynı zamanda dizinin öğeleri üzerinde işlemler gerçekleştiren bir işlevi de parametre olarak alır, ancak map() yöntemi, dizi öğeleri üzerindeki işlemlerin sonuçlarını içeren yeni bir dizi döndürür.

Örneğin bir dizideki sayıların karelerini hesaplamak için harita yöntemini kullanalım:

Var sayıları = [1, 2, 3, 4, 5, 6]; function square(value, index, array) ( return result = değer * değer; ); var squareArray = sayılar.map(kare); document.write(squareArray);

Map() yöntemine iletilen işlev, yinelenen geçerli öğeyi alır, üzerinde işlemler gerçekleştirir ve bir değer döndürür. Bu değer daha sonra ortaya çıkan squareArray'e gider

Bu yazıda sayısal indekslere sahip standart JavaScript dizilerine bakacağız. Diziler köşeli parantez kullanılarak bildirilir:

var meyveler = ["Elma", "Portakal", "Eşek"]

Bir öğeyi çıkarmak için dizinini köşeli parantez içine yerleştirin. İlk dizin 0:

var meyveler = ["Elma", "Portakal", "Eşek"] alarm(meyveler) alarm(meyveler) alarm(meyveler)

Ayrıca bir JavaScript dizisinin uzunluğunu da alabiliriz:

var meyveler = ["Elma", "Portakal", "Eşek"] alarm(meyveler.uzunluk)

Hata! İki meyve ve bir eşekten oluşan bir dizi oluşturduk. Şimdi eşeği çıkarmamız gerekiyor.

pop ve push yöntemleri

JavaScript'teki pop yöntemi, bir diziden bir öğeyi kaldırır ve onu döndürür.

Aşağıdaki örnek "Eşek"in bir diziden nasıl alındığını gösterir:

var meyveler = ["Elma", "Turuncu", "Eşek"] alarm(""+fruits.pop()'u kaldırıyorum) // Artık sadece ["Elma", "Turuncu"] alarmımız var("Şimdi dizinin boyutu : "+meyveler.uzunluk) // eşek kaldırıldı

Pop'un dizinin kendisini değiştirdiğini unutmayın.

Pop'un karşılığı, bir diziye öğe ekleyen push yöntemidir. Örneğin şeftali eklemeyi unuttuk:

var meyveler = ["Elma", "Portakal"] meyveler.push("Şeftali"); // şimdi elimizde ["Elma", "Portakal", "Şeftali"] alarm("Son element:"+meyveler) var

  1. Öğelerle bir stil dizisi oluşturun " Caz”, “Blues”;
  2. Değeri ekleyin " Rock'n'roll«;
  3. Sondan ikinci değeri " değeriyle değiştirin Klasik". Sonunda bir dizi elde etmelisiniz: “ Caz”, ”Klasik”, ”Rock'n'roll" Kod herhangi bir dizi uzunluğu için çalışmalıdır;
  4. Diziden son değeri alın ve bunu alarm aracılığıyla görüntüleyin.

Çözüm

// 1 var stil = ["Caz", "Bluez"] // 2 stil.push("Rock"n"Roll") // veya: stiller = "Rock"n"Roll" // 3 stil = "Klasik " // 4 uyarı(styles.pop())

Kaydırma/kaydırmayı kaldırma yöntemleri

Shift/unshift yöntemleri dizinin sonunda çalışır, ancak öğeleri yukarı kaydırmak için de kaydırmayı kullanabilirsiniz ( dizinin ilk değeri elemanların kaydırılmasıyla kaldırılır). unshift yöntemi, JavaScript'in bir diziye sondan bir öğe eklemesine olanak tanır:

var meyveler = ["Elma", "Portakal"] var elma = meyveler.shift() // artık sadece ["Portakal"] meyvelerimiz var.unshift("Limon") // şimdi elimizde ["Limon", " Orange"] alarm(meyveler.uzunluk) // 2

Hem kaydırma hem de kaydırmayı kaldırma, aynı anda birden fazla öğe üzerinde çalışabilir:

var meyveler = ["Elma"] Fruits.Push("Portakal", "Şeftali") Fruits.unshift("Ananas", "Limon") // şimdi dizi şu şekilde görünüyor: ["Ananas", "Limon", "Elma" ", "Portakal", "Şeftali"]

Kendi kendine yönetilen görev

Uyarı yoluyla arr dizisinden rastgele bir değer görüntüleyecek kodu yazın:

var arr = ["Erik", "Portakal", "Eşek", "Havuç", "JavaScript"]

Not: Minimum değerden maksimum değere (dahil) kadar rastgele bir sayı elde etme kodu aşağıdaki gibidir:

var rand = min + Math.floor(Math.random()*(max+1-min))

Çözüm

0'dan arr.length-1'e (dahil) kadar rastgele bir sayı çıkarmamız gerekiyor:

var arr = ["Erik", "Turuncu", "Eşek", "Havuç", "JavaScript"] var rand = Math.floor(Math.random()*arr.length) alarm(arr)

Bir dizi üzerinde yineleme

JavaScript'te bir dizide yineleme for döngüsü kullanılarak yapılır:

var meyveler = ["Ananas", "Limon", "Elma", "Portakal", "Şeftali"] for(var i=0; i

Kendi kendine yönetilen görev

Belirli bir dizide bir değer bulan ve değer bulunamazsa indeksini veya -1'i döndüren find(arr,value) işlevi oluşturun.

Örneğin:

dizi = [ "test", 2, 1.5, false ] find(dizi, "test") // 0 find(dizi, 2) // 1 bul(dizi, 1.5) // 2 bul(dizi, 0) // -1

Çözüm

Olası bir çözüm şöyle görünebilir:

function find(dizi, değer) ( for(var i=0; i

Ancak bu yanlıştır çünkü == 0 ile false arasındaki farkı tanımlamaz.

JavaScript'te dizilerle çalışırken === kullanmak daha doğrudur. Ayrıca en son ES5 standardı Array#indexOf işlevini içerir. Bununla şöyle bir fonksiyon tanımlayabiliriz:

function find(array, value) ( ​​if (array.indexOf) return array.indexOf(value) for(var i=0; i

Find'ı indexOf yönteminin var olup olmadığını kontrol edecek bir koşulla tanımlamak daha da akıllıca olacaktır.

Kendi kendine yönetilen görev

Bir diziyi alan ve yalnızca arr'dan gelen sayısal değerleri içeren yeni bir dizi döndüren filterNumeric(arr) işlevi oluşturun.

Bunun nasıl çalışması gerektiğine dair bir örnek:

dizi = ["a", 1, "b", 2]; arr = filtreSayısal(dizi); // şimdi dizi =

Çözüm

Çözüm, dizi boyunca yineleme yapmak ve değerleri sayısal ise yeni bir diziye eklemektir.

katıl ve böl

Bazen bir JavaScript dizisini dizeye dönüştürmenin hızlı bir yoluna ihtiyaç duyarsınız. Birleştirme yöntemi bunun içindir.

Verilen sınırlayıcıyı kullanarak diziyi bir dize halinde birleştirir:

var meyveler = ["Limon", "Elma", "Portakal", "Şeftali"]; var str = meyveler.join(", "); uyarı(str);

Ters dönüşüm, bölme yöntemi kullanılarak kolayca yapılabilir:

var meyveler = "Elma,Portakal,Şeftali"; var arr = meyveler.split("); // dizi artık ["Elma", "Turuncu", "Şeftali"] uyarısını(arr);

Kendi kendine yönetilen görev

Nesne, boşluklarla ayrılmış sınıf adlarını içeren bir className özelliği içerir:

cls sınıfını ekleyen, ancak mevcut olmaması durumunda addClass(obj, cls) işlevini yazın:

ddClass(obj, "new") // obj.className="menüyü aç yeni" addClass(obj, "open") // değişiklik yok (sınıf zaten mevcut) addClass(obj, "me") // obj.className= "menüyü aç yeni ben" uyarısı(obj.className) //

Çözüm

className ve döngüyü parçalara ayırmanız gerekir. Sınıf bulunamazsa eklenir.

Döngü, performansı artırmak için biraz optimize edildi:

function addClass(elem, cls) ( for(var c = elem.className.split(" "), i=c.length-1; i>=0; i--) ( if (c[i] == cls ) return ) elem.className += " "+cls ) var obj = ( className: "menüyü aç" ) addClass(obj, "yeni") addClass(obj, "open") alarm(obj.className) // menüyü aç yeni

Yukarıdaki örnekte c değişkeni döngünün başında tanımlanmış ve son dizini i olarak ayarlanmıştır.

Döngünün kendisi ters yönde işlenir ve i>=0 koşuluyla biter. Çünkü i>=0'ı kontrol etmek i'den daha hızlıdır. JavaScript'te neler bir dizide aramayı hızlandırır.

Bir diziyi kırpmak için uzunluğu kullanma

uzunluk özelliğini kullanarak bir diziyi şu şekilde kesebilirsiniz:

Uzunluğu belirlersiniz ve tarayıcı diziyi keser.

Dizi bir nesnedir, peki bu ne anlama geliyor?

Aslında, JavaScript'te Dizi, otomatik uzunluk ayarı ve özel yöntemlerle tamamlanmış bir Nesnedir.

Bu, dizilerin belleğin bitişik bir bölümünü temsil ettiği diğer dillerdeki kavramdan farklıdır. Bu aynı zamanda bağlantılı listelere dayalı bir kuyruk veya yığından da farklıdır.

Sayısal olmayan dizi tuşları

Anahtarlar sayılardır ancak herhangi bir isme sahip olabilirler:

arr = arr = 5 arr.prop = 10 // bunu yapma

JavaScript'te diziler, performans avantajlarının yanı sıra bazı dezavantajları da olan karma tablolardır.

Örneğin, it/aç, bir dizinin yalnızca en dış öğelerinde çalışır, dolayısıyla inanılmaz derecede hızlıdırlar.

Push yalnızca sonla çalışır:

var arr = ["Benim", "dizi"] arr.push("bir şey") alarm(dizi) // string "dizi"

Shift/unshift yöntemleri yavaştır çünkü tüm diziyi yeniden numaralandırmaları gerekir. Ekleme yöntemi numaralandırmanın değişmesine de neden olabilir:


Yani vardiya/kaydırma, Push/pop'tan daha yavaştır. Dizi ne kadar büyük olursa, JavaScript'in diziyi sıralaması o kadar uzun sürer.

Kendi kendine yönetilen görev

Sonuç ne olacak? Neden?

arr = ["a", "b"] arr.push(işlev() ( uyarı(bu))) arr() // ?

Çözüm

Diziler nesne olduğundan arr .. aslında obj gibi bir nesneye yapılan bir yöntem çağrısıdır yöntem:

arr() // arr() ile aynı // sözdizimsel olarak yanlış, ancak kavramsal olarak aynı: arr.2() // obj.method() ile aynı tarzda yeniden yazılmıştır bu = arr bu durumda fonksiyona iletilir, böylece arr içeriği yazdırılır. arr = ["a", "b"] arr.push(işlev() ( uyarı(bu)) arr() // "a", "b",işlev

Seyrek diziler, uzunluk açıklaması

uzunluk özelliği, JavaScript'teki bir dizinin boyutunu değil, son dizin + 1'i almanızı sağlar. Endekslerde "boşluklar" bulunan seyrek dizilerden bahsederken bu önemlidir.

Aşağıdaki örnekte boş meyvelere iki öğe ekleyeceğiz ancak uzunluk değeri 100 olarak kalacak:

var meyveler = // boş dizi meyveler = "Şeftali" meyveler = "Elma" alarm(meyveler.uzunluk) // 100 (ancak dizide yalnızca 2 öğe var)

Seyrek bir dizinin çıktısını almaya çalışırsanız, tarayıcı eksik dizin değerlerini boş öğeler olarak döndürecektir:

var meyveler = // boş dizi meyveler = "Şeftali" meyveler = "Elma" alarm(meyveler) // ,Şeftali,Elma (veya buna benzer bir şey)

Ancak dizi, iki anahtarı olan bir nesnedir. Eksik değerler yer kaplamaz.

Seyrek diziler, dizi yöntemleri uygulandığında tuhaf davranır. Dizinlerin eksik olduğuna dair hiçbir fikirleri yok:

var meyveler = meyveler = "Şeftali" meyveler = "Elma" alarm(fruits.pop()) // "Elma"yı pop (indeks 9'a) alarm(fruits.pop()) // belirtilmemiş bir öğeyi pop (indeks 8'e) )

Seyrek dizilerden kaçınmaya çalışın. Her durumda, yöntemleri normal şekilde çalışmayacaktır. Bunun yerine Nesne'yi kullanın.

Bir diziden çıkarma

Bildiğimiz gibi diziler nesnelerdir, dolayısıyla bir değeri kaldırmak için silmeyi kullanabiliriz:

var arr = ["Git", "hedef", "ev"] arr sil // şimdi arr = ["Git", tanımsız, "ev"] alarm(dizi) // tanımlı değil

Değerin kaldırıldığını görebilirsiniz, ancak dizi belirtilmemiş bir öğe içerdiğinden istediğimiz şekilde değil.

Silme operatörü bir anahtar/değer çiftini kaldırır, işte bu kadar. Doğal olarak dizi yalnızca bir karma olduğundan, kaldırılan öğenin konumu tanımsız hale gelir.

Çoğu zaman, indeksler arasında "boşluklar" bırakmadan bir öğeyi çıkarmamız gerekir. Bu konuda bize yardımcı olacak başka bir yöntem daha var.

birleştirme yöntemi

Splice yöntemi, öğeleri kaldırabilir ve bunları JavaScript çok boyutlu dizilerinde değiştirebilir. Sözdizimi şöyledir:

arr.splice(index, deleteCount[, elem1, ..., elemN])

Dizinden başlayarak deleteCount öğesini kaldırır ve yerine elem1, ..., elemN'yi ekler.

Birkaç örneğe bakalım:

var arr = ["Git", "to", "home"] arr.splice(1, 1) // dizin 1'den başlayarak 1 öğeyi kaldırın alarm(arr.join(",")) // ["Git " , "home"] (1 öğe kaldırıldı)

Böylece bir diziden bir öğeyi kaldırmak için splice'ı kullanabilirsiniz. Dizi öğesi numaraları, boşluğu dolduracak şekilde kaydırılır:

var arr = ["Git", "to", "home"] arr.splice(0, 1) // 1 öğeyi kaldırın, 0 dizininden başlayarak warning(arr) // "to" ilk öğe oldu

Aşağıdaki örnek öğelerin nasıl değiştirileceğini gösterir:

splice yöntemi, kaldırılan öğelerin bir dizisini döndürür:

var arr = ["Git", "git", "eve", "şimdi"]; // ilk 2 öğeyi kaldırın var kaldırıldı = arr.splice(0, 2) uyarı(kaldırıldı) // "Git", "to"<-- массив удаленных элементов splice может вставлять элементы, задайте 0 для deleteCount. var arr = ["Go", "to", "home"]; // со второй позиции // удаляем 0 // и вставляем "my", "sweet" arr.splice(2, 0, "my", "sweet") alert(arr) // "Go", "to", "my", "sweet", "home"

Bu yöntem ayrıca dizinin sonundan itibaren sayılan negatif bir dizin de kullanabilir:

var arr = // -1 elemanı için (sondan bir önceki) // 0 elemanı kaldır, // ve 3 ve 4'ü ekle arr.splice(-1, 0, 3, 4) alarm(arr) // 1,2,3, 4.5

Kendi kendine yönetilen görev

Nesne, boşluklarla ayrılmış sınıf adlarını içeren bir className özelliği içerir:

var obj = (className: "menüyü aç")

Eğer verilmişse cls sınıfını kaldıran bir RemoveClass(obj, cls) fonksiyonu yazın:

RemoveClass(obj, "open") // obj.className="menu" RemoveClass(obj, "blabla") // değişiklik yok (kaldırılacak sınıf yok)

Çözüm

className'i parçalara ayırmanız ve bu parçalar arasında döngü yapmanız gerekir. Bir eşleşme bulunursa, JavaScript nesne dizisinden kaldırılır ve en sona tekrar eklenir.

Bunu biraz optimize edelim:

function RemoveClass(elem, cls) ( for(var c = elem.className.split(" "), i=c.length-1; i>=0; i--) ( if (c[i] == cls ) c.splice(i,1) ) elem.className = c.join(" ") ) var obj = ( className: "menüyü aç" ) RemoveClass(obj, "open") RemoveClass(obj, "blabla") alarm (obj.className) // menü

Yukarıdaki örnekte c değişkeni döngünün başında, i ise onun son indeksine ayarlanmıştır.

Döngünün kendisi ters yönde çalışır ve i>=0 koşuluyla biter. Bunun nedeni i>=0'ın i'den daha hızlı işaretlenmesidir. Bu, c'deki özelliklerin aranmasını hızlandırır.

dilim yöntemi

Bir dizinin bir kısmını dilim(begin[, end]) yöntemini kullanarak çıkarabilirsiniz: var arr = ["Neden", "learn", "JavaScript"]; var arr2 = arr.slice(0,2) // 0'dan başlayarak 2 öğe alır alarm(arr2.join(", ")) // "Neden, öğren"

Lütfen bu yöntemin JavaScript'teki dizideki öğelerin sayısını değiştirmediğini, ancak bir kısmını kopyaladığını unutmayın.

Tüm öğelerin belirli bir dizinden başlamasını sağlamak için ikinci argümanı atlayabilirsiniz:

var arr = ["Neden", "öğren", "JavaScript"]; var arr2 = arr.slice(1) // 1'den başlayarak tüm elemanları alır alarm(arr2.join(", ")) // "learn, JavaScript"

Yöntem, tıpkı String#slice gibi negatif dizinleri destekler.

ters yöntem

Bir başka yararlı yöntem ise terstir. Diyelim ki " gibi bir alan adının son bölümünü almak istiyorum iletişim" itibaren " benim.site.com" Bunu nasıl yapacağınız aşağıda açıklanmıştır:

var etki alanı = "my.site.com" var last = etki alanı.split(".").reverse() uyarı(son)

JavaScript dizilerinin, bir yöntemi çağırmak ve ardından elde edilen diziden bir öğeyi almak için karmaşık bir sözdizimini (reverse()) desteklediğini unutmayın.

rever() gibi daha uzun aramalar oluşturabilirsiniz. 0] arr.sort() uyarı(dizi) // 1, 15, 2

Yukarıdaki kodu çalıştırın. 1, 15, 2 sırasını alacaksınız. Bunun nedeni, yöntemin her şeyi bir dizeye dönüştürmesi ve varsayılan olarak sözlükbilimsel sırayı kullanmasıdır.