Diziye Javascript ekleme. ▍ include() yönteminin güçlü yönleri

  • 18.06.2019

Dizilerle çalışma yöntemlerinin yalnızca bir kısmını anlattım.

Burada dizi elemanlarının eklenmesi, çıkarılması hakkında konuşacağız. Bir diziyi çevirme ve sıralamanın yanı sıra dizileri dilimleme, değiştirme ve birleştirme hakkında.

Bir diziye eleman ekleme.

Bir diziye yeni öğeler eklemek için length özelliğini kullanabilirsiniz:

Var myArray = ["Apple", "Microsoft", "Google", "Facebook"]; myArray = "Yahoo!"; konsol günlüğü(myArray); // ["Apple", "Microsoft", "Google", "Facebook", "Yahoo!"]

Bu işe yarayacak, çünkü dizi elemanları sıfırdan numaralandırılmıştır ve uzunluk bir tane daha. Uzunluk her zaman eşdeğer dizin + 1, bu nedenle dizinin sonuna yeni bir öğe eklemek çok kolaydır. Garip bir şekilde, dizinin uzunluğundan çok daha büyük bir konuma bir öğe ekleyebilirsiniz:

Var myArray = ["Jimi Hendrix", "Eric Clapton", "Jimmy Page", "Keith Richards"]; myArray = "Lindsey Buckingham"; konsol günlüğü(myArray); // ["Jimi Hendrix", "Eric Clapton", "Jimmy Page", "Keith Richards", tanımsız × 95, "Lindsey Buckingham"] console.log(myArray.length); // yüz

Yorumlarda görüldüğü gibi 95 boş slot eklenecek ve dizinin sonuna "Lindsey Buckingham" elementi eklenecektir. Bundan sonra 100'lük bir uzunluk elde edeceğiz. Diziye yeni bir eleman eklemenin bir başka yolu da metodu kullanmaktır. itmek():

Var myArray = ["Paul McCartney", "John Lennon", "George Harrison"]; myArray.push("Ringo Starr", "George Martin"); konsol günlüğü(myArray); // ["Paul McCartney", "John Lennon", "George Harrison", "Ringo Starr", "George Martin"]

Yöntem itmek() her zaman dizinin yeni uzunluğunu döndürür (bizim durumumuzda 5). ile bir eleman ekleyebilirsiniz. ekleme():

Var myArray = ["palamut", "kayın", "mongongo", "macadamia"]; myArray.splice(2, 0, "kaju"); // "kaju" dizini 2 konsol.log(myArray); // ["palamut", "kayın", "kaju", "mongongo", "macadamia"]

İkinci argüman 0 olduğunda, bu hiçbir öğenin kaldırılmayacağı ve bu nedenle sonraki argümanların ilk argümanda belirtilen konumda diziye ekleneceği anlamına gelir.

Bir diziden eleman çıkarma

Bir öğeyi kaldırmak, eklemekten biraz daha zordur. Bir dizinin sonundan bir öğeyi kaldırmak için şunu kullanabiliriz: pop():

Var myArray = ["7-yukarı", "Sprite", "Zencefilli Gazoz", "Limonata"]; myArray.pop(); konsol günlüğü(myArray); // ["7'li", "Sprite", "Zencefilli Gazoz"]

Yöntem pop() her zaman dizideki son öğeyi kaldırır ve onu döndürür.

Ayrıca kullanabilirsin ekleme() yöntem:

Var myArray = ["manyok", "hindistan cevizi", "acı bakla", "ravent"]; myArray Ekleme(2, 1); // index 2'deki elementi kaldır console.log(myArray); // ["manyok", "hindistan cevizi", "ravent"]

Yöntemden farklı olarak ekleme(), eleman eklemek için kullanılan, burada ikinci argüman 1'dir, bu da indeksi 2 olan (veya arka arkaya 3.) elemanı kaldırmak istediğimizi söyler. Bu durumda "lupin" öğesi kaldırılmıştır.

Operatörü kullanarak diziden bir öğeyi kaldırabilirsiniz. silmek:

Var myArray = ["Byte Bandit", "Eliza", "Jeefo", "Michelangelo"]; konsol.log(myArray.length); // 4 myArray'i sil; // Eliza console.log(myArray.length) silin; // 4 konsol.log(myArray); // ["Byte Bandit", tanımsız × 1, "Jeefo", "Michelangelo"]

İlk önemli not: silmek() eleman kaldırıldıktan sonra dizinin uzunluğunu değiştirmez (dizideki son eleman olsa bile). İkinci: silmek() kaldırılan öğenin değerini tanımsız olarak değiştirir, bu nedenle erişildiğinde myArray = tanımsız.

Bir diziden bir öğeyi kaldırmanın iyi bir yolu, John Resig'in Array.remove öğesini kullanmaktır. Aşağıda, sayfasından alınan bir kullanım örneği verilmiştir:

// Dizi Kaldır - John Resig tarafından (MIT Lisanslı) Array.prototype.remove = function(from, to) ( var rest = this.slice((to || from) + 1 || this.length); this.length = itibaren< 0 ? this.length + from: from; return this.push.apply(this, rest); }; // Удаление 2 элемента из массива array.remove(1); // Удаление 2-ого элемента с конца массива array.remove(-2); // Удаление второго и третьего элемента array.remove(1,2); // Удаление последнего и предпоследнего элемента array.remove(-2,-1);

Çözüme, Underscore.js'deki işlevlerden biri olan Viral Patel veya jQuery'nin grep() işlevine bakmak isteyebilirsiniz.

Ek olarak, JavaScript bir yöntem var vardiya(), dizideki ilk elemanı kaldırır ve değerini döndürür. Kodu görelim:

Var myArray = ["Matt Kramer", "Jason Bieler", "Tom Defile", "Phil Varone"]; konsol.log(myArray.length); // 4 var firstItem = myArray.shift(); konsol.log(ilkItem); // Matt Kramer console.log(myArray.length); // 3 console.log(myArray); // ["Jason Bieler", "Tom Defile", "Phil Varone"]

Yöntemi kullanma vardiya()öğeyi kaldırdık ancak değerini firstItem değişkenimizde sakladık. Dizinin uzunluğu 4'ten 3'e değişti.

Bu yöntem, yöntemle birlikte yararlı olabilir itmek(). Bunları birlikte kullanarak, bir dizideki öğeleri verimli bir şekilde sıraya koyabiliriz. Bir elemanı baştan kaldırıp sonuna yeni bir eleman ekleyerek dizinin uzunluğunu saklarız.

Tersine, yöntemi kullanabiliriz kaydırmayı kaldır() bir dizinin başına bir eleman eklemek için:

Var myArray = ["apito", "kastanyetler", "maraca"]; konsol.log(myArray.length); // 3 myArray.unshift("zil çubuğu", "tan-tan"); konsol.log(myArray.length); // 5 konsol.log(myArray); // ["zil çubuğu", "tan-tan", "apito", "kastanyetler", "maraca"]

yöntemi kullanma kaydırmayı kaldır() yöntem ile pop(), dizinin başına eleman ekleyip sonundan çıkararak ters yönde kuyruklar oluşturabilirsiniz.

Dizi öğelerini çevirme ve sıralama.

Bir dizideki öğeleri tersine çevirmek için kullanabiliriz tersi():

Var myArray = ["geri sayım", "son", "the"]; konsol günlüğü(myArray); // ["geri sayım", "son", "the"] myArray = myArray.reverse(); konsol günlüğü(myArray); // ["Nihai geri sayım"]

Yöntemi kullanarak bir dizinin öğelerini alfabetik sıraya göre sıralamak mümkündür. çeşit():

Var myArray = ["ksilofonlar", "zebralar", "juggernauts", "avokadolar"]; konsol günlüğü(myArray); // ["ksilofonlar", "zebralar", "büyücüler", "avokadolar"] myArray = myArray.sort(); konsol günlüğü(myArray); // ["avokado", "juggernauts", "ksilofonlar", "zebralar"]

Ama sayılarla çalışmaz.

Var myArray = ; konsol günlüğü(myArray); // myArray = myArray.sort(); konsol günlüğü(myArray); //

Numaraları sıralamanız gerekirse, aşağıdaki kodu kullanabilirsiniz:

işlev karşılaştırmaSayıları(a, b) ( dönüş a - b; ) var myArray = ; konsol günlüğü(myArray); // myArray = myArray.sort(compareNumbers); konsol günlüğü(myArray); //

Yukarıda gösterildiği gibi, içine yerleştirilmiş basit bir işlevle çeşit(), sayıları içeren bir dizi doğru şekilde sıralanacaktır.

Dizilerin birliği.

2 veya daha fazla diziyi birleştirebilir ve birleştirilmiş dizilerin öğelerini içeren 1 dizi elde edebiliriz. Bunun için yöntemi kullanıyoruz birleştirmek():

Var myArray = ["Jay Ferguson", "Andrew Scott"]; var myArray2 = ["Chris Murphy", "Patrick Pentland"]; var myNewArray = myArray.concat(myArray2); konsol.log(myNewArray); // ["Jay Ferguson", "Andrew Scott", "Chris Murphy", "Patrick Pentland"]

Var myArray = ["Jay Ferguson", "Andrew Scott"]; var myNewArray = myArray.concat("Chris Murphy", "Patrick Pentland"); konsol.log(myNewArray); // ["Jay Ferguson", "Andrew Scott", "Chris Murphy", "Patrick Pentland"]

Bir diziyi bölme.

Fonksiyonu kullanarak mevcut bir diziden 1 veya daha fazla eleman içeren yeni bir dizi oluşturabiliriz. dilim():

Var myArray = ["Vokal", "Bas", "Gitar", "Davul", "Elma", "Portakal"]; var myNewArray = myArray.slice(4); konsol.log(myNewArray); // ["Elmalar", "Portakallar"]

Yöntem dilim() 1 veya 2 argüman alır. 1 argüman (indeks) iletilirse, verilen dizinden başlayarak eskisinin tüm öğelerinden yeni bir dizi oluşturulur. 2 argüman verilirse, ilk argümandan başlayan ve sonuncusu hariç ikinci parametrede indeksi geçirilen elemana kadar olan elemanlardan yeni bir dizi oluşturulur. Daha açık hale getirmek için aşağıdaki kodu görelim:

Var myArray = ["Vokal", "Bas", "Gitar", "Davul", "Elma", "Portakal"]; var myNewArray = myArray.slice(0, 4); konsol.log(myNewArray); // ["Vokal", "Bas", "Gitar", "Davul"]

Bir dizideki öğelerin değiştirilmesi.

Kullanırız ekleme() diziden elemanları kaldırmak için, ancak dizideki bir elemanı yeni elemanlarla da değiştirebiliriz:

Var myArray = ["Rivers Cuomo", "Patrick Wilson", "Brian Bell", "Matt Sharp"]; myArray.splice(3, 1, "Scott Shriner"); // index 3'teki 1 elemanı konsol.log(myArray); // ["Rivers Cuomo", "Patrick Wilson", "Brian Bell", "Scott Shriner"]

Yöntem ekleme() her zaman kaldırılan öğeleri içeren bir dizi döndürür. Satır 2, 1 öğe "Brian Bell" döndürür.

Çözüm

Bu makaleler, JavaScript'te dizilerle çalışma yöntemlerini açıklamaktadır. MDN'de bu gönderiye dahil etmediğim bazı ek öğeler var. Yalnızca IE9+'da çalışırlar, bu nedenle kullanışlı olmayabilirler.

Ekleyeceğiniz bir şey var mı? Veya dizileri yönetmenize yardımcı olacak ilginç bir kitaplık biliyor musunuz? Yorum lütfen!

Bir dizi ve bir değişken arasındaki fark nedir

Javascript'te ve diğer herhangi bir programlama dilinde dizilerin ne olduğunu daha iyi anlamak için hayattan gerçek nesneler üzerinde örnekler göstereceğim.

Süpermarkete geldiğinizde, içine eşyalarınızı koyabileceğiniz hücrelerle dolu bir dolap görebilirsiniz.

Her hücrenin bir numarası vardır. Bu numara ile, satın almaların sonunda eşyalarınızın hangi hücrede olduğunu anlayabilirsiniz.

Analoji ile arayabiliriz değişken eşyalarınızın saklandığı dolabın bir hücresi ve tüm hücreler sıralamak.

Javascript'te bir dizi nasıl oluşturulur

Javascript'te bir dizi birçok yolla oluşturulabilir.

Javascript'te bir dizi oluşturmanın ilk yolu

Sayısal veriler ve nesneler için bu şekilde:

Dizeler için bu yol:

Bu şekilde dört elemanlı bir dizi oluşturduk.

Javascript'te dizi oluşturmanın ikinci yolu

Javascript'te dizi oluşturmanın ikinci yolu nesnelerdir.

Şuna benziyor:

dizi = new Array(1, 23, 15, 10, 33);

Dizi dizisi verileri için diziler tırnak içine alınmalıdır.

Javascript'te bir diziye nasıl başvurulur

Bir dizinin ilk öğesine erişmek için şunu yazın:

burada dizinin ilk elemanını alırız - dizi. Console.log - dizinin içeriğini görüntüler.

Dizi numaralandırması sıfırdan başlar. Bu yüzden döndüğümüzde sıralamak ilk öğe 1'in değerini veya dizeleri olan örnekte - Bir'i alırız.

Dizi Yöntemleri

Javascript, dizilerle çalışmak için yöntemlere sahiptir. Bu yöntemler çok kullanışlıdır ve bazı programcılar nedense bunlardan kaçınır ve kendi bisikletlerini yazarlar.

Ters Yöntem

Ters yöntem bir diziyi değiştirir ve öğeleri ters sırada olan yeni bir dizi oluşturur.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.ters();

Sonuç:

["Dört", "Üç", "İki", "Bir"]

Concat yöntemi

concat yöntemi, bir diziyi başka bir dizi veya veriyle birleştirir. concat yöntemi orijinal diziyi değiştirmez.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi concat(12);

Sonuç:

["Bir", "İki", "Üç", "Dört", 12]

Dilim Yöntemi

Slice yöntemi, bir dizgenin bir kısmını keser ve hem iki parametreyi (başlangıç ​​ve bitiş) hem de bir parametreyi girdi olarak alabilir.

İkinci parametre -1 olarak ayarlanırsa, dizenin geri kalanını sondan bir önceki elemanla döndürür.

Slice yöntemi, orijinal diziyi değiştirmez.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi dilimi(1,-1);

Sonuç:

Ekleme yöntemi

Ekleme yöntemi oldukça çok yönlüdür.

Girdi olarak üç argüman alır:

2. Kaldırılacak dizi öğelerinin sayısı

3. Üçüncü argüman, dizi öğelerini çıkardığımız yere eklenmesi gereken değerlerdir.

Ekleme yöntemi, orijinal diziyi değiştirir.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.splice(1, 2, "2", "3");

Sonuç:

["Bir", "2", "3", "Dört"]

Ekleme yöntemindeki üçüncü bağımsız değişken isteğe bağlıdır. Üçüncü bağımsız değişkeni kullanmazsanız, ekleme yöntemi ilk iki bağımsız değişkende belirtilen dizinin öğelerini kaldırır ve bu öğeler olmadan yeni bir dizi döndürür.

İtme yöntemi

Push yöntemi, bir dizinin sonuna bir öğe ekler

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.push("Beş");

Sonuç:

["Bir iki üç dört beş"]

UnShift yöntemi

unshift yöntemi, dizinin başına bir öğe ekler

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.unshift("Sıfır");

Sonuç:

["Sıfır", "Bir", "İki", "Üç", "Dört"]

Pop yöntemi

pop yöntemi, diziden son öğeyi kaldırır ve kaldırılan öğeyi döndürür.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.pop();

Sonuç:

["Bir, iki, üç"]

kaydırma yöntemi

Shift yöntemi, diziden ilk öğeyi kaldırır ve kaldırılan öğeyi döndürür.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

Sonuç:

["İki üç dört"]

birleştirme yöntemi

Javascript'teki birleştirme yöntemi, bir diziyi bir dizgeye dönüştürür ve kendi sınırlayıcınızı ayarlamanıza izin verir. Varsayılan olarak, birleştirme yöntemi ayırıcı olarak virgül kullanır. Ayırıcıyı "-" koymaya çalışalım.

Örnek:

dizi = ["Bir", "İki", "Üç", "Dört"];

dizi.join("-");

Sonuç:

Bir iki üç dört

Sıralama Yöntemi

Soft yöntemi, diziyi varsayılan olarak alfabetik olarak sıralar. Farklı sıralama mantığı ile bir fonksiyon geçirebiliriz. Bunun hakkında ayrı ayrı yöntemlere ayrılmış ayrı bir makalede konuşacağız.

Örnek:

dizi = ["a", "c", "b", "d"];

Sonuç:

["bir B C D"]

Döngülerde dizilerle çalışma

Döngüler, dizilerle çalışmak için çok önemli yöntemlerdir. Bunların yardımıyla dizinin tek bir öğesine erişebilir ve tüm diziyi dolaşabiliriz.

Döngü için

Bir dizide dolaşmak için basit döngü

Örnek:

Sonuç:

Bir
2
Üç
dört

ForEach Döngü

Bir dizi üzerinde yineleme için geliştirilmiş döngü. Girdi olarak üç eleman alabilir: eleman, dizin, dizi.

Örnek 1:

Sonuç:

Bir
2
Üç
dört

Örnek 2:

toUpperCase() yöntemi tüm öğeleri büyük harf yapar

Sonuç:

["BİR İKİ ÜÇ DÖRT"]

Javascript'teki diziler hakkında sonuçlar

Javascript'te dizilerle çalışmak için birçok yöntem vardır. Bu yazıda tüm yöntemleri ele almadık, sonraki yazılarda bunlara kesinlikle dikkat edeceğiz ancak bu yazıdan dizilerle çalışma yöntemlerini nasıl kullanacağınızı biliyorsanız, beceriniz artı yüzde 150 olacak ve siz Javascript programlama dilinde bir ön uç geliştirici olarak seviyenizi önemli ölçüde artıracaktır.

Yeni makaleler ve video eğitimleri için bizi izlemeye devam edin, abone olun YouTube kanalımız ve gruba katıl

Bu yazıda bir JavaScript dizisine ve bileşenlerine bakacağız. JavaScript ideal olarak yönlendirilir ve programlama için tasarlanmıştır. Aslında, ECMAScript dilini uygular (ECMA-262 referansı).

JavaScript nerede kullanılır? Bir uygulama nesnesine programlı bir yol tanımlamak için gömülebilir bir dil olarak kullanılır. Web sayfalarını etkileşimli hale getiren bir betik dili olarak kullanıldığı tarayıcılarda bulunabilir.

Bu ürünün en önemli mimari özellikleri, dinamik ve zayıf yazım, otomatik bellek yönetimi, mükemmel programlama ve birinci sınıf nesneler olan işlevlerdir.

Genel olarak, JavaScript çeşitli nedenlerden etkilendi, çünkü geliştirme sırasında Java'ya benzer, ancak programcıların kullanımı kolay bir dil oluşturmak istediler. Bu arada, JavaScript herhangi bir kuruluşa veya kuruluşa özgü değildir, bu da onu web geliştiricileri tarafından kullanılan bir dizi programlama stilinden farklı kılar.

JavaScript'in Oracle Corporation'ın tescilli ticari markası olduğuna dikkat edilmelidir.

dizi nedir?

Numaralandırılmış değerleri saklayan bir dizi denir. Bu tür her bir değere bir dizi bileşeni denir ve bileşenin ilişkilendirildiği basamağa bir dizin adı verilir. JavaScript dizisi yazılmamış. Bu, dizi parçalarının herhangi bir türden olabileceği ve aynı diziye ait farklı parçaların tamamen farklı türlere sahip olduğu anlamına gelir.

Ayrıca JavaScript dizisi dinamiktir, yani sabit bir boyutun bildirilmesine gerek yoktur. Sonuçta, istediğiniz zaman yeni ayrıntılar ekleyebilirsiniz.

dizi üretimi

JavaScript kullanarak bir dizi oluşturmak hiç de zor değil. Bunun için iki yöntem vardır. İlki, içinde virgülle ayrılmış bir parça listesi bulunan değişmez - köşeli parantezler kullanarak bir dizi oluşturmayı içerir.

  • var boş = ; //boş dizi;
  • var sayılar = ; //beş dijital bileşenli dizi;
  • var diff = ; //farklı tipte üç elemanlı bir dizi.

Kural olarak, burada değerlerin basit olması gerekli değildir (dizeler ve sayılar). Konu değişmezleri, diğer işlevler ve diziler gibi başka ifadeler de olabilir.

Dizi oluşturmanın ikinci yolu Array() tasarımcısını çağırmaktır. Onu üç şekilde davet edebilirsiniz:

  • Tasarımcıyı bağımsız değişkenler olmadan çağırma: var b - new Array(). Bu, boş bir değişmeze eşdeğer boş bir dizinin oluşturulmasını sağlar.
  • Yapıcı, n dizi bileşenlerinin değerini açıkça belirtir: var b = new Array(1, 3, 5, 8, "string", true). Bu durumda, tasarımcıya yeni bir dizinin bileşenlerine dönüştürülen bir argüman listesi sunulur. Argümanlar, diziye belirtildiği yerde yazılır.
  • Değerlerin sonraki ataması için alanın belirlenmesi. Bu, tanımlarken parantez içine alınmış tek bir sayıdan oluşan bir dizi belirterek yapılır: var b = new Array(5). Bu tespit yöntemi, gerekli sayıda bileşenin diziye (her biri tanımsız olarak listelenmiştir) tahsis edilmesini ve sunum sürecinde değerlerin daha sonra atanması olasılığını içerir. Bu form genellikle uzunluğu önceden bilinen bir Javascript dizisini önceden tahsis etmek için kullanılır.

Dizi ayrıntılarını yazma, okuma ve ekleme

kullanarak bir dizinin bileşenlerine erişebilirsiniz. Bu arada, JavaScript'teki tüm bileşenler sıfırdan başlayarak numaralandırılmıştır. Gerekli öğeyi elde etmek için numarası, Kural olarak, ayrıntılar değiştirilebilir. JavaScript'in diziye ekleyebilmesi için yeni bir değer atamak yeterlidir.

JavaScript dizilerinin herhangi bir türden herhangi bir sayıda öğeyi depolayabileceğine dikkat edilmelidir.

Dizi Uzunluğu

Yani, bir dizinin uzunluğunun genel olarak ilginç bir fenomen olduğunu biliyoruz. Daha ayrıntılı olarak düşünelim. Array() tasarımcısıyla oluşturulmuş veya bir dizi değişmezi ile tanımlanmış olsun, tüm diziler, kaydedilecek toplam öğe sayısını döndüren belirli bir uzunluk özelliğine sahiptir. Bir dizi tanımsız parçalar (tanımsız ile gösterilir) içerebileceğinden, daha kesin bir ifade şudur: uzunluk kalitesi her zaman dizi bileşeninin en büyük sayısından (dizin) bir fazladır. Uzunluk kalitesi otomatik olarak ayarlanır, dizide yeni parçalar göründükçe doğru kalır.

Bir dizinin son bileşeninin görünmesini sağlamak için length özelliğini kullanabilirsiniz.

Son kısım, dizinin boyutundan daha küçük bir dizine sahiptir. Sonuçta, geri sayım her zaman sıfırdan başlar. Ah şu JavaScript! Bir dizinin uzunluğu, tam öğe sayısına bağlıdır. Bu nedenle, kaç tane olması gerektiğini bilmiyorsanız, ancak dizinin son öğesine başvurmanız gerekiyorsa, şu notasyonu kullanmanız gerekir: v.length - 1.

Bir dizinin ayrıntıları üzerinde yineleme

Çoğu zaman, uzunluk özelliği, bir döngüdeki bir dizinin ayrıntılarını yinelemek için kullanılır:

  • var meyveler = ["çilek", "şeftali", "elma", "muz"];
  • for(var I = 0; ben< fruits.lenght; i++);
  • document.write(meyveler[i] + "...").

Bu örnekte, bileşenlerin bitişik olarak yerleştirildiği ve indeks sıfıra sahip ilk kısımdan başladığı görülmektedir. Eğer durum böyle değilse, dizinin her bir elemanını çağırmadan önce tanımlı olup olmadığını kontrol etmelisiniz.

Bazen bileşenleri başlatmak için bir döngü de kullanılır.

Dizi Arttırma ve Kesme

JavaScript kullanarak bir diziye nasıl dize ekleyeceğimi merak ediyorum? Dizilerle çalışma sürecinde uzunluk kalitesi otomatik olarak iyileştirilir, bu yüzden kendimiz halletmek zorundayız. Bir ayrıntıyı hatırlamak gerekir - uzunluk özelliği sadece okunabilir değil, aynı zamanda yazılabilir. Uzunluk kalitesine, mevcut olandan daha düşük boyutta bir değer atanırsa, dizi belirtilen değere düşürülür. Yeni dizin aralığında olmayan tüm bileşenler atılır ve uzunlukları daha sonra döndürülse bile değerleri kaybolur - değerler geri yüklenmez.

Bunun gibi bir diziyi temizlemek oldukça kolaydır: foo.length = 0.

Uzunluk kalitesi mevcut değerinden daha büyük yapılırsa, dizinin sonunda yeni ayarlanmamış parçalar görünecek ve bu da onu istenen boyuta artıracaktır.

Desen ayrıntılarını kaldırma

Silme operatörü, var olmaya devam ederken dizi bileşenini tanımsız olarak ayarlar. Bir JavaScript dizisinin bir öğesini kaldırmak ve kalan bölümlerin boş alana taşınmasını istiyorsanız, sağlanan dizi yöntemlerinden birini kullanmanız gerekir. Array.shift() yöntemi ilk bileşeni, pop() son bileşeni ortadan kaldırır ve splice() yöntemi dizinin herhangi bir yerindeki bir veya bir dizi bileşeni ortadan kaldırır.

Diziler çok boyutludur

Görünüşe göre biraz avantajlıyız, bundan sonra bakmamız gereken şey 2B diziler. JavaScript dizilerinin bileşen olarak başka öğeler içerebileceğini hatırlıyor musunuz? Bu özellik çok boyutlu diziler üretmek için kullanılır. Bir dizi dizisindeki bileşenleri ziyaret etmek için köşeli parantezleri iki kez uygulamanız yeterlidir.

ilişkisel diziler

Şimdi JavaScript ticari markasının ilişkisel dizileri nasıl kullandığını inceleyelim. Bunu yapmak için teoriye bakmamız gerekiyor: ilişkisel dizilere bazen karma tablolar denir. Onlar sayesinde dizinler yerine dizeler kullanılır. Bu tür yapıların kullanımı, basit bir nesnenin özelliğinin adının kullanımına benzer, ancak bu durumda, bir dizi biçiminde çalışma yapılırken. JavaScript'te ilişkisel diziler üzerinde çalışmanın hiçbir yolu olmadığından, bunlar normal dizilerden çok daha az kullanılır. Verileri depolamak için hala yararlı olabilecekleri ve erişilmesi gereken ayrıntıların hatırlanmasını kolaylaştırabilecekleri unutulmamalıdır.

Dizi Çıkışı

Ve şimdi JavaScript sisteminde ne öğreneceğiz? Bir iletişim kutusunda (monitör ekranında) bir dizinin görüntülenmesi ve dizi bileşenlerinin değerlerinin çıktılanması.

Programın tüm bileşenlerin değerlerini göstermesi gerekiyorsa, bunun için for ifadesini kullanmak uygundur. İlginç bir şekilde, for rule counter değişkeni bir dizi bileşen indeksi olarak kullanılır.

temizlik

Bir JavaScript dizisini filtrelemek için uzunluğunu sıfıra ayarlamanız gerekir:

  • var myArray = ;
  • myArray.length = 0.
  • temizle: işlev() (;
  • bu uzunluk = 0;
  • bunu iade et;

Bileşen Ekleme ve Kaldırma

Pekala, bu ilginç JavaScript dilini daha fazla incelemeye devam ediyoruz. Bir dizi öğesi, diğer nesnelerin olağan özellikleriyle aynı şekilde hem kaldırılabilir hem de eklenebilir. Ancak burada bazı farklılıklar vardır: sayısal özellikler eklenirken uzunluk kalitesi değişebilir ve uzunluk özelliği değiştirilirken sayısal nitelikler ortadan kaldırılabilir. Prensip olarak, dizilerin niteliklerini ayarlamak için kullanılan algoritma aşağıdaki gibidir:

  • Bilinmeyen bir sayısal özellik i eklenirken uzunluk i'ye eşit veya i'den küçük ise uzunluk i+1 olarak belirlenir.
  • Uzunluk kalitesi değiştirildiğinde, aşağıdaki eylemler gerçekleştirilir: atanan değer sıfırdan küçükse, bir RangeError atılır. Yeni uzunluğa eşit veya ondan daha büyük olan tüm sayısal nitelikleri ve dizinleri ortadan kaldırın.

Genel olarak, bir JavaScript dizisinin bir öğesini silmek kolaydır. Sonuçta, uzunluğu ayarlarken bile, ondan "ekstra" bileşenleri çıkarmanız gerekir. Dolayısıyla diziyi temizleme seçeneği. Herhangi bir nedenle boş yeni bir dizinin atanan değişkeni size uymuyorsa, ancak mevcut olanı geçersiz kılmak gerekiyorsa, uzunluk kalitesini sıfıra ayarlamak yeterlidir.

unshift, shift, pop ve push yöntemleri

Dizi bileşenleri manuel olarak değiştirilse de, birçok kişi bunu yapmak için yerleşik yöntemlerin kullanılmasını önerir. Uzunluğun doğru kalite değerini ve dizide boşluk olmamasını garanti eden bu nüanstır. Bu arada, doğru kalite uzunluğu, bileşen sayısına karşılık gelecektir.

Push yöntemi, geçirilen parçaları dizinin sonuna taşır. Pop yöntemi, takip eden bileşeni geri verir ve onu kaldırır.

Genel olarak, sürüm 8'den önceki Internet Explorer'da, unshift undefined, diğer tarayıcılarda yeni uzunluk değerini döndürebilir. Bu nedenle, unshift'ten döndürülen değere güvenmemek daha iyidir.

Bir dizinin ortasına ayrıntıları ekleme ve çıkarma

Bir JavaScript dizisini silmeniz gerekiyorsa ne yapmalısınız? Ekleme yönteminin Array.prototype.splice imzasına sahip olduğu bilinmektedir.

Başlangıç ​​dizininden başlayarak deleteCount bileşenlerini diziden kaldırır. İkiden fazla argüman iletilirse, dizideki sonraki tüm argümanlar elenenlerin yerine yerleştirilir. Başlangıç ​​negatifse, geri çekilmenin devam edeceği endeks uzunluk + başlangıç'a eşit olacaktır. Diziye dönüş, kaldırılan öğelerden gelir.

Aslında, ekleme yöntemini kullanarak dizinin ortasından bileşenleri kaldırabilir veya dizinin herhangi bir yerine istediğiniz sayıda bileşen ekleyebilirsiniz.

En basit versiyonda, i indeksli bir bileşeni kaldırmanız gerekiyorsa, i ve 1 parametreleriyle diziden splice yöntemini istemeniz gerekir.

Prensipte, ekleme yönteminin ikinci parametresi isteğe bağlıdır, ancak bir bağımsız değişkene sahip bir işlevin davranışı her tarayıcıda farklıdır.

Örneğin Firefox'ta, Opera'nın en son sürümlerinde, Safari ve Chrome'da dizinin sonuna kadar tüm detaylar kaldırılacaktır.

IE'de bileşenlerin hiçbiri yok edilmeyecektir. Opera'nın ilk varyasyonlarında, davranışı tahmin etmek imkansızdır - indeks başlangıcı olan bir kısım - 1 kaldırılacaktır.Bu nedenle, bu yönteme her zaman en az iki bileşen iletilmelidir.

Anahtarlar

Elbette JavaScript öğrenirken daha önce de bahsedildiği gibi ilişkisel diziler de gözden kaçırılmamalıdır. Bu, "(anahtar, değer)" biçimindeki çiftleri saklamanıza ve bir çift eklemenin yanı sıra bir çifti silme ve arama işlemlerini desteklemenize izin veren soyut bir bilgi türüdür (veri deposuna arabirim). anahtar:

BUL (anahtar).

INSERT(değer, anahtar).

KALDIR (anahtar).

Benzer anahtarlara sahip iki çiftin bir ilişkisel dizide saklanamayacağı varsayılır. Çiftte k + v v, k anahtarıyla ilişkili değer olarak adlandırılır. Bu tür dizilerin farklı uygulamalarında yukarıdaki işlemlerin semantikleri ve adları farklı olabilir.

Bu nedenle, BUL (anahtar) eylemi, verilen anahtarla veya belirli bir UNDEF nesnesiyle ilişkili değeri döndürür; bu, verilen anahtarla ilişkili hiçbir değer olmadığı anlamına gelir. Diğer iki eylem hiçbir şey döndürmez (işlemin başarılı olup olmadığı dışında).

Genel olarak, arayüz açısından, ilişkisel bir diziyi, yalnızca tam sayıların değil, aynı zamanda diğer türlerin değerlerinin, örneğin dizelerin de indeks olarak kullanılabileceği basit bir dizi olarak düşünmek uygundur. .

Bu arada, PHP, Perl, Ruby, Python, Tcl, JavaScript ve diğerleri gibi birçok üst düzey programlama dilinde bu tür diziler için destek mevcuttur. İlişkisel dizilerle çalışmak için yerleşik araçlara sahip olmayan diller için, kitaplıklar şeklinde çok sayıda uygulama oluşturulmuştur.

İlişkisel diziye bir örnek, bir telefon rehberidir. Bu varyantta değer, karmaşık “F. I. O. + adresi ”ve anahtar telefon numarasıdır. Bir telefon numarasının bir sahibi vardır, ancak bir kişi birkaç numaraya sahip olabilir.

İlişkili Uzantılar

En ünlü uzantıların aşağıdaki eylemleri içerdiğine dikkat edilmelidir:

  • HER - kaydedilen tüm çiftler arasında "yürüyün".
  • CLEAR - tüm kayıtları kaldırın.
  • MIN - en küçük anahtar değerine sahip çifti bulun.
  • MAX - en yüksek anahtar değerine sahip çifti bulun.

Son iki seçenekte ise karşılaştırma işleminin tuşlarda belirtilmesi gerekmektedir.

ilişkisel dizilerin uygulamaları

Bir ilişkisel dizinin birçok farklı uygulaması vardır. En yaygın uygulama, bileşenleri (değer, anahtar) çiftleri olan basit bir diziye dayalı olabilir. Aramayı hızlandırmak için, bu dizinin bileşenlerini anahtara göre sıralayabilir ve kullanarak bulabilirsiniz. görünen boş hücreye girin.

En iyi bilinen uygulamalar, çeşitli arama ağaçlarına dayanmaktadır. Örneğin, tipik bir C++ STL okuyucusunda, harita kapsayıcısı siyah-maun ağacı temelinde uygulanır. Ruby, Tcl, Python stilleri, karma tablo türlerinden birini kullanır. Başka uygulamalar da var.

Genel olarak, her uygulamanın kendi avantajları ve dezavantajları vardır. Her üç eylemin de, O(log n) dönemi boyunca hem ortalamada hem de en kötü nüansta yürütülmesi önemlidir; burada n, kaydedilen çiftlerin mevcut sayısıdır. Eşleşen arama ağaçları (siyah-kırmızı ağaçlar dahil) için bu koşul sağlanır.

Hash tablolarına dayalı uygulamalarda, ortalama sürenin, arama ağaçlarına dayalı eylemlerden daha iyi olan O(1) olarak tanımlandığı bilinmektedir. Elbette bu, bireysel işlemlerin yüksek hızda yürütülmesini garanti etmez: INSERT'in yürütme süresi, en kötü durumda O(n) olarak gösterilir. INSERT işlemi, doldurma faktörü en yüksek noktasına ulaştığında uzun zaman alır ve karma tablo indeksinin yeniden yapılandırılması gerekli hale gelir.

Bu arada, bu karma listeler kötüdür, çünkü temel olarak MAX, MIN ve kaydedilen tüm çiftleri azalan veya artan anahtar sırasına göre atlamak için algoritmayı hızlı ek eylemler gerçekleştirmek imkansızdır.

Dizileri js ile indekslemeyi, elemanlarını kaldırmayı ve eklemeyi öğrenmek.

JavaScript'teki bir dizi, bir değerler listesini depolamak için tasarlanmış global bir nesnedir.

Her türlü veriyi depolayabilmesi bakımından diğer değişkenlere benzer. Ancak bir dizinin bir değişkenden önemli bir farkı vardır: aynı anda birden fazla öğe depolayabilir.

Bir dizi, sıralı bir değerler topluluğudur. Her değere eleman denir ve indeks adı verilen kendi numarası vardır.

Bir dizi içindeki bir eleman herhangi bir tipte olabilir. Ayrıca, bir dizinin öğeleri farklı türlerde olabilir: sayılar, dizeler, mantıksal öğeler ve hatta nesneler veya diğer diziler.

Dizi öğelerinin sırası 0 tabanlıdır. Dizinin her zaman bir indeks ofsetine sahip olacağı ortaya çıktı: ilk eleman 0 indeksine sahip olacak, ikincisi 1 indeksine sahip olacak ve bu böyle devam edecek.

Aşağıda, farklı türde öğeler içeren bir dizi örneği verilmiştir:

Dizi Oluşturma (Bildirme)

Diziler çok kullanışlıdır çünkü içlerinde ihtiyaç duyduğunuz kadar veri depolayabilirsiniz. js dizisinin mümkün olan maksimum boyutu 2 32 elemandır.

JavaScript'e bir dizi oluşturmak istediğimizi söylemeliyiz. Bunun için iki seçenek vardır: köşeli parantez içindeki değer veya yeni anahtar kelime.

Steno: köşeli parantez kullanma

Köşeli parantez içine alınmış virgülle ayrılmış bir değerler listesi.

var myArray = [ "Jack", "Sawyer", "John", "Desmond" ];

Dizinin içeriği köşeli parantezler arasında ne olduğuna göre belirlenir. Her değer bir virgülle ayrılır.

Değerler, basit değişkenlerle aynı şekilde ayarlanır, yani dizeler tırnak içine alınmış vb. bildirilmelidir.

Boş bir dizi bildirmek için parantezleri boş bırakın:

var myArray = ;

Uzun Not: Array() Oluşturucusunu Kullanma

var LosArray = new Array("Jack", "Sawyer", "John", "Desmond"); var twinPeaksArray = new Array("Laura", 2, ["Bob", "Leland", "Dale"]);

Yeni anahtar kelime, JavaScript'e değerleri parametre olarak geçirilen yeni bir dizi oluşturmasını söyler.

Dizinizin kaç elemana sahip olacağını önceden biliyorsanız, bu değeri yapıcıya hemen iletebilirsiniz.

var myArray = new Array(80);

Yukarıdaki ifade, tanımsız değerlere sahip 80 yuvalık boş bir dizi oluşturacaktır.

Boş dizi bildirimi:

var myArray = new Array();

Dizi öğelerine erişme

Her bir elemanın indeksini kullanarak, dizideki herhangi bir veri ile çalışabilir ve operatörü kullanarak bunlara erişebilirsiniz:

var myArray = ["Jack", "Sawyer", "John", "Desmond"]; konsol günlüğü(myArray); // "Jack" konsol.log(myArray) yazdırır; // "Desmond" yazdırır

Bir dizinin birden çok düzeyi olabilir, yani her öğenin kendisi bir dizi olabilir. Sonuç, iki boyutlu bir js dizisidir. Diğerlerinin içinde bulunan bu dizilere nasıl atıfta bulunulur - " çok boyutlu diziler»?

Örneğin, bir aileyi temsil eden bir dizi düşünelim. Bu aileden çocuklar, ana dizinin içinde ayrı bir diziye kaydedilir:

var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];

Aşağıdaki gibi temsil edilebilir:

"Lisa" değerine atıfta bulunmak için:

varlisa = familyArray; konsol günlüğü(lisa); // "Lisa" yazdırır

Bu, neredeyse süresiz olarak devam ettirilebilir; bu, iç içe geçmiş veri kümelerini dizilerde saklamanıza ve bunlara dizinleri kullanarak erişmenize olanak tanır.

Bir diziye eleman ekleme

Bir dizinin elemanlarına kendi indekslerini kullanarak nasıl erişeceğimizi bulduk. Benzer şekilde, örneğin şunları bildirerek öğeler ekleyebilir (veya değiştirebilirsiniz):

var myArray = [ "Kate", "Güneş"]; myArray = "Juliet"; konsol günlüğü(myArray); // "Kate, Sun, Juliet" yazdırır

Bir dizinde kendisinden önce başka öğe olmayan bir öğe bildirirsem ne olur? Dizinin kendisi tüm eksik öğeleri oluşturacak ve onlara undefined değerini atayacaktır:

var myArray = ["Kate", "Güneş"]; myArray = "Juliet"; konsol.log(myArray.length); // "6" konsol.log(myArray) yazdırır; // yazdırır ["Kate", "Güneş", undefined, undefined, undefined, "Juliet"]

length özelliğini kullanarak bir js dizisinin ne kadar uzun olduğunu öğrenebilirsiniz. Yukarıdaki örnekte, dizide altı eleman vardır ve üçüne bir değer verilmemiştir - bunlar undefined olarak işaretlenmiştir.

push() yöntemi

push() yöntemini kullanarak js dizisine bir veya daha fazla öğe ekleyebilirsiniz. Push() sınırsız sayıda parametre kabul eder, hepsi dizinin sonuna eklenecektir.

var myArray = [ "Kate", "Süt"]; myArray.push("Juliet"); // "Juliet" öğesini myArray.push("Libby", "Shannon" dizisinin sonuna ekler);// "Libby" ve "Shannon" öğelerini console.log(myaArray) dizisinin sonuna ekler ); // ["Kate", "Güneş", "Juliet", "Libby", "Shannon"] yazdırır

unshift() yöntemi

unshift() yöntemi, dizinin başına öğeler eklemesi dışında, push() ile aynı şekilde çalışır.

var myArray = [ "Kate", "Güneş"]; myArray.unshift("Juliet"); // "Juliet" öğesini myArray.unshift("Libby", "Shannon"); dizisinin başına ekler. // "Libby" ve "Shannon" öğelerini konsol.log(myArray) dizisinin başına ekler; // Çıktılar ["Libby", "Shannon", "Juliet", "Kate", "Sun"]

Dizi öğelerini kaldırma

pop() ve shift() yöntemleri

pop() ve shift() yöntemleri, bir dizinin sırasıyla son ve ilk öğesini kaldırır:

var myArray = ["Jack", "Sawyer", "John", "Desmond", "Kate"]; myArray.pop(); // "Kate" öğesini kaldırır myArray.shift(); // "Jack" konsol.log(myArray) öğesini kaldırır; // Çıktılar ["Sawyer", "John", "Desmond"]

splice() yöntemi

splice() yöntemini kullanarak, öğelerin tam dizinini belirtirken bir diziye öğeleri kaldırabilir veya ekleyebilirsiniz.

Aşağıdaki örnekte, splice() yöntemi, dizin 2'den başlayarak iki öğe ekler ( yani üçüncü elemandan):

var meyveArray = ["elma", "şeftali", "portakal", "limon", "kireç", "kiraz"]; meyveArray.splice(2, 0, "kavun", "muz"); konsol.log(meyveArray); // Çıktılar ["elma", "şeftali", "kavun", "muz", "portakal", "limon", "lime", "kiraz"]

splice() yönteminin ilk parametresi bir dizindir. Öğelerin hangi konumda ekleneceğini/kaldırılacağını belirtir. Örneğimizde indeks 2'yi seçtik ( "turuncu" anlamına gelen).

İkinci parametre, kaldırılacak eleman sayısıdır. 0 değerini belirledik, bu nedenle hiçbir şey silinmeyecek.

Aşağıdaki parametreler isteğe bağlıdır. Diziye yeni değerler eklerler. Bizim durumumuzda, dizin 2'den başlayarak "kavun" ve "muz" eklememiz gerekiyor.