JavaScript sözdizimi dizileri, değişkenleri terminalleri. Dizi

  • 18.06.2019

Bir dizi nedir

Bir dizi, numaralandırılmış değerleri saklayan bir veri türüdür. Her numaralı değerin bir dizi öğesi olarak adlandırılır ve elemanın ilişkilendirildiği numara indeksi olarak adlandırılır. JavaScript dizileri inepittir, bir dizi öğesinin herhangi bir türü olabileceği anlamına gelir ve bir dizinin farklı elemanlarının farklı türlere sahip olabileceği anlamına gelir. Buna ek olarak, JavaScript dizileri dinamiktir, sabit bir boyut ilan etmek gerekli olmadığı anlamına gelir ve istediğiniz zaman yeni öğeler ekleyebilirsiniz.

Bir dizi oluşturma

Bir dizi iki şekilde oluşturulabilir, ilk: Bir dizi değişmez kare parantez kullanarak bir dizi oluşturun. Virgülle ayrılmış elemanların bir listesi bulunur.

Var boş \u003d; // boş dizi var Numares \u003d; // 5 sayısal elemanlı dizi var diff \u003d; // çeşitli tiplerde 3 unsur ile dizisi

Değerlerin basit olması gerekmez (sayılar veya satırlar) - ayrıca başka ifadeler olabilir, örneğin: nesne listeleri, diğer diziler veya işlevler.

Var num \u003d 700; var sekmesi \u003d, num + 1];

Bir dizi oluşturmanın ikinci yolu, dizinin () yapıcısının çağrısıdır. Array () yapıcısını üç şekilde arayın.

  • Tasarımcıyı argümanlar olmadan arayın:
var b \u003d yeni dizi ();

Bu durumda, boş bir dizi boş bir değişime eşdeğerdir.

  • Tasarımcı açıkça, dizinin n öğelerinin değerlerini gösterir:
Var b \u003d yeni dizi (1, 3, 5, 8, "string", true);

Bu durumda, tasarımcı yeni bir dizinin unsurları olan bir argüman listesi alır. Argümanlar, belirtilen sırayla bir dizide kaydedilir.

  • Sonraki değerlerin atanması için alan seçimi. Bu, parantez içinde bir sayı dizisini belirlerken belirterek yapılır:
Var b \u003d yeni diziler (5);

Diziyi belirleme yöntemi, komut dosyası boyunca değerlerin bir sonraki ataması olasılığı ile belirli sayıda öğenin (her biri tanımsız) bir dizinin tahsis edilmesini içerir. Bu form genellikle, uzunluğu önceden biliniyorsa, diziyi önceden konumlandırmak için kullanılır.

Dizi Öğeleri Okuma, Yazma ve Ekleme

Dizinin elemanlarına erişim, operatör kullanılarak gerçekleştirilir. JavaScript'teki dizinin elemanları, sıfırdan başlayarak numaralandırılır. İstediğiniz dizi öğesini elde etmek için, numarasını köşeli parantez içinde belirtmeniz gerekir.

Var numaraları \u003d; Belge.write (sayılar + ","); // belgenin ilk elemanı.Write dizi (sayılar + ","); // belgenin ikinci elemanı.WRITE dizisi (sayılar + ","); // belgenin üçüncü elemanı.Write dizi (sayılar); // dördüncü dizi öğesi

Dizinin elemanları değiştirilebilir:

Var numaraları \u003d; Sayılar \u003d 10; // dizinin ilk unsurunu değiştirdi -

Yeni bir dizi öğesi eklemek için, yeni bir değer atamak için yeterlidir:

Var numaraları \u003d; Sayılar \u003d 7; // oldu

Not: Javascript dizilerinde, herhangi bir türdeki herhangi bir sayıda öğe depolanabilir.

Massova uzunluğu

Array () yapıcısı kullanılarak ve değişmez diziyi kullanarak tanımlandığı gibi tüm diziler, dizide depolanan toplam eleman sayısını döndüren özel bir uzunluk özelliğine sahiptir. Dizilerin belirsiz unsurlara sahip olabileceği için (tanımlanmamış), daha doğru ifadeler şöyledir: Uzunluk özelliği, her zaman birim için Dizi öğesinin en büyük indeks (sayı) daha büyüktür. Bir diziye yeni öğeler eklerken, uzunluk özelliği otomatik olarak güncellenir.

Var v \u003d yeni dizi (); // v.Length \u003d\u003d 0 (hiçbir eleman tanımlanmadı) V \u003d yeni diziler (1,2,3); // v.Length \u003d\u003d 3 (Elements 0-2) v \u003d tanımlayın; // v.Length \u003d\u003d2 (Elemanlar 0 ve 1) Document.Write (V.Length) tanımlanır;

Dizinin son unsurunu elde etmek için, uzunluk özelliğini de kullanabilirsiniz:

Var v \u003d ["javascript", "özellik", "diziler"]; Belge.write (v);

Son elemanın, sayma sıfırdan başladığından, dizinin uzunluğu 1'den daha az bir dizinine sahiptir. Bu nedenle, tam madde sayısını bilmiyorsanız, ancak Masova'nın son unsuruna başvurmanız gerekir. Kayıt kullanılır: V.Length - 1.

Bruep Elements Dizisi

En sık, uzunluk özelliği, döngüdeki dizinin elemanlarının tadını çıkarmak için kullanılır:

Bu örnekte, dizinin elemanlarının sürekli olarak düzenlendiği ve birinci elementle (bir indeks 0) ile başladığı varsayılmaktadır. Bu durum böyle değilse, dizinin her bir elemanına hitap etmeden önce, belirlenip tespit edilmediğini kontrol etmek gerekir:

Var meyveler \u003d ["elma", "muz", "çilek", "şeftali"]; için (var i \u003d 0; ben

Döngü, dizinin unsurlarını başlatmak için de kullanılabilir:

Var çubuğu \u003d yeni dizi (10); için (var i \u003d 0; ben

Dizinin kesilmesi ve artırılması

Dizilerle çalışırken, uzunluk özelliğinin uzunluğu otomatik olarak güncellenir, bu yüzden kendinizle ilgilenmek zorunda değiliz. Ancak bir makyajdan bahsetmeye değer - uzunluk özelliği sadece okumak için değil, kayıt için de mevcuttur. Uzunluk özelliği değeri geçerli olandan daha az belirtirse, dizinin yeni (verilen) bir uzunluğa kısaltılırsa, yeni indeks aralığına girmeyen herhangi bir eleman atılır ve değerleri bile kaybolur. Ardından geri dönünce geri döner - değerler geri yüklenmez.

Var foo \u003d; foo.length \u003d 1; // 1 öğeyi kısaltın - foo.length \u003d 4; // eski belge sayısını yeniden yerleştirin. Yazar Elemanları (FOO); // Artık

Diziyi temizlemenin en kolay yolu: foo.Length \u003d 0.

Uzunluk özelliği mevcut değerinden büyükse, dizinin sonuna yeni belirsiz unsurlar eklenecek, diziyi belirtilen boyutta artıracaktır.

Dizi Öğelerinin Kaldırılması

Sil deyimi, undefined bir dizi öğesine, elemanın kendisi var olmaya devam eder. Öğeleri çıkarmak için, kalan elemanların serbest bırakılan yere kaydırılması için, önceden tanımlanmış dizi yöntemlerinden birini kullanmak gerekir. Array.shift () yöntemi, dizinin ilk elemanını siler, POP () dizinin son elemanıdır, ekin () yöntemi, dizindeki herhangi bir yerdeki elemanların bir veya aralığıdır. Detaylı olarak bu yöntemlerin nasıl kullanılacağı bir sonraki bölümde açıklanacaktır.

Çok boyutlu diziler

JavaScript dizilerinin öğeleri olarak diğer dizileri içerebileceğini hatırlayın. Bu özellik çok boyutlu diziler oluşturmak için kullanılabilir. Bir dizi dizideki öğelere erişmek için, çerçeve braketlerini iki kez kullanmak yeterlidir.

Var matrix \u003d [,,]; Belge.write (matris); // merkezi bir öğe seçildi

Örnekte neyin yazıldığını analiz edeceğiz, Matrix bir dizi sayılar dizisidir. Herhangi bir matris [n] öğesi bir dizidir. Dizi içindeki belirli bir numaraya erişmek için, ikinci köşeli parantez içindeki matris [n] [n] yazmanız gerekir, dahili dizinin elemanının endeksi belirtilir.

// Önceki kayıt analogu - Var tablosu \u003d yeni diziyi (3) Kullanma var tablosu \u003d yeni dizi yapıcısı; için (var i \u003d 0; ben

İlişkisel Diziler

Nesneler, ilişkisel diziler olarak kullanılabilir. Biraz teori - ilişkisel diziler (ayrıca karma tabloları olarak da adlandırılır), dizinler yerine satır kullanmak için izin verir. Birleştirici dizilerin kullanımı, sıradan bir nesnenin özelliğinin adını kullanmaya çok benzer, ancak bu durumda, bir dizi biçiminde çalışırken. JavaScript'in ilişkisel dizilerle çalışmak için hiçbir yöntemi yok olduğundan, sıradan daha az sıklıkla uygulanır, ancak bilgi depolamak için faydalı olabilir ve erişmeniz gereken unsurları ezberlemeyi kolaylaştırır.

Var s_list \u003d yeni nesne (); s_list ["fat"] \u003d "yağ"; s_list ["small"] \u003d "küçük"; S_list ["name"] \u003d "HOMER"; Çünkü (S_List'te var x) // Tüm belgeleri geri çek.Write Elements (S_List [x] + "
");

Bu yazıda, JavaScript dizisini, bileşenlerini düşünüyoruz. JavaScript, programlama için oluşturulan ideal odaklı. Aslında, ECMAScript dilini uygular (ECMA-262 standardını).

Javascript nerede kullanılır? Uygulamanın konusundaki program yolunu belirlemek için gömülü bir dil olarak kullanılır. Tarayıcılarda bulunabilir: Orada web sayfaları etkileşimini veren bir senaryo dili olarak kullanılır.

Bu ürünün en önemli mimari özellikleri dinamik ve zayıf tipleme, otomatik kontrol, ideal programlama, ilk boşaltma nesneleri olan özelliklerdir.

Genel olarak, JavaScript farklı nedenlerden dolayı etkiledi, çünkü gelişmekte olan Java'ya benzer bir dil oluşturmak istiyor, ancak programcılar tarafından kullanımı kolay. Bu arada, JavaScript dili, web geliştiricileri tarafından kullanılan bir dizi yazılım stilinden farklı hale getiren herhangi bir işletme veya bir kuruluşa sahip değildir.

JavaScript'in Oracle Corporation endişesinin tescilli bir ticari markası olduğu belirtilmelidir.

Bir dizi nedir?

Numaralı değerleri saklayan bir dizi denir. Böyle bir değer, dizinin bileşeni olarak adlandırılır ve bileşen bağlamaların indeks olarak adlandırıldığı rakam olarak adlandırılır. JavaScript-dizi inepitleşti. Bu, dizinin detaylarının herhangi bir türe sahip olabileceği ve bir diziye ait farklı parçaların tamamen farklı olduğu anlamına gelir.

Ek olarak, JavaScript dizisi dinamiktir ve bu, sabit boyutun bildirilmesi gerekmediğini göstermektedir. Sonuçta, istediğiniz zaman yeni detaylar ekleyebilirsiniz.

Büyük üretim

JavaScript dilini kullanarak, bir dizi oluşturun kesinlikle zor değil. Bunun için iki yöntem var. Birincisi, değişkenlerin yardımı ile bir dizinin imalatını sağlar - virgülle bölünmüş parçaların listesinin bulunduğu yerlerde bulunan köşeli parantezler bulunur.

  • var boş \u003d; // boş dizisi;
  • var sayıları \u003d; // beş dijital bileşenle dizisi;
  • var diff \u003d; // farklı tipte üç unsur ile dizisi.

Kural olarak, değerlerin basit olması (dizeleri ve sayılar) olmaması gerekmez. Ayrıca, örneğin konu değişikleri, diğer fonksiyonlar ve dizilerde başka bir ifadeler de olabilir.

Bir dizi oluşturmanın ikinci yolu, dizi tasarımcısının () çağrısıdır. Üç yöntemle davet edebilirsiniz:

  • Argümasız Tasarımcının Mücadelesi: Var B - Yeni Dizi (). Boş bir değişikliğe eşdeğer boş bir dizinin oluşturulmasını sağlar.
  • Tasarımcı açıkça, dizi bileşenlerinin N değerinin göstergelerine sahiptir: var b \u003d yeni dizi (1, 3, 5, 8, "string", true). Bu durumda, tasarımcı, yeni bir dizinin bileşenlerine dönüşen bir argüman listesiyle sunulmaktadır. Argümanlar, belirtilen konumda bir diziye yazılır.
  • Alanın sonraki özellikleri için alanın tanımı. Bu, parantez içine alınmış bir numara dizisinin tespit edildiğinde belirlenerek yapılır: var b \u003d yeni diziler (5). Bu tanımlama yöntemi, gerekli bileşenlerin dizisinin (her biri, her biri tanımlanmamış), sunum sırasında daha sonraki değerlerin etkilerinin olasılığı ile (her biri tanımlanmamış) bir dizinin tahsis edilmesini içerir. Bu form genellikle, önceden bilinen JavaScript dizisini ön plana çıkarmak için kullanılır.

Kayıt, Okuma ve seri detaylar ekleme

Operatörü kullanarak dizinin bileşenlerine gidebilirsiniz. Bu arada, JavaScript'teki tüm bileşenler sıfırdan başlayarak numaralandırılır. İstenilen öğeyi elde etmek için, numarası kural olarak belirtir, parçalar değiştirilebilir. Ve bir diziye JavaScript eklemek için oldukça yeni bir değer atanır.

JavaScript dizilerinde, her türlü unsur öğesini saklayabileceğinizi belirtilmelidir.

Massova uzunluğu

Bu yüzden, dizinin uzunluğu genellikle ilginç bir fenomendir. Daha fazla ayrıntı düşünün. Array () tasarımcısı kullanılarak tasarlandığı ve dizinin değişmezi sayesinde tasarlanan tüm diziler, toplam tasarruf elemanının sayısını hatırlatan belirli bir uzunluk özelliğine sahiptir. Dizi içinde belirsiz parçalar olabilir (tanımlanmamış belirtilmiştir), daha doğru ifade, bu şekilde daha doğru ifade edilir: Uzunluk kalitesi her zaman birim başına her zaman, dizi bileşeninin en büyük sayısından (indeks) daha fazladır. Uzunluk kalitesi otomatik olarak ayarlanır, yeni parçalar dizide göründüğünde doğru kalır.

Dizinin son bileşenini görünmek için, uzunluk özelliğini kullanabilirsiniz.

Son ayrıntı, birim başına dizinin boyutundan daha az bir endeks vardır. Sonuçta, geri sayım her zaman sıfırdandır. Oh, bu javascript! Dizinin uzunluğu tam madde sayısına bağlıdır. Bu nedenle, kaçının kaç tane olması gerektiğini bilmiyorsanız, ancak sonlandırma dizisi öğesine başvurmanız gerekir, kaydı uygulamanız gerekir: V.Length - 1.

Bruep masif detayları

Çok sık, uzunluk özelliği, döngüdeki diziyi numaralandırmak için kullanılır:

  • var fruits \u003d ["Çilek", "şeftali", "Apple", "muz"];
  • için (var i \u003d 0; ben< fruits.lenght; i++);
  • belge.write (meyveler [i] + "...").

Bu örnekte, bileşenlerin sürekli olarak yerleştirildiği görülüyor ve sıfır endeksine sahip olan ilk bölümle başladığı görülüyor. Bu durum böyle değilse, dizinin her bir öğesini çağırmadan önce, belirlendiğini kontrol etmek gerekir.

Döngü de bazen bileşenleri başlatmak için kullanılır.

Dizinin arttırılması ve kesilmesi

Bir diziyi eklemek için JavaScript satırını nasıl kullandığını merak ediyorum. Dizilerle çalışma sürecinde, kaliteli uzunluk uzunluğu otomatik olarak iyileştirilir, bu yüzden kendinizle ilgilenmeliyiz. Bir detayı hatırlamanız gerekir - uzunluk özelliği yalnızca kullanılabilir değil, aynı zamanda kayıt için de geçerlidir. Uzunluk kalitesi, akımın boyutuna göre aşağı olan değere atfedilirse, dizinin belirli bir değerine düşer. Yeni dizinler aralığına dahil olmayan herhangi bir bileşen ayrılır ve daha sonra geri dönüş uzunluğu geri döndürülmeseniz bile, değerleri kaybolur.

Bunun gibi diziyi temizlemek çok kolaydır: foo.length \u003d 0.

Uzunluk kalitesi akım değerinden büyükse, dizinin sonunda, istenen boyuta kadar artacak yeni tanımlanamayan ürünler görünecektir.

Dizinin ayrıntılarını çıkarma

Sil operatörü, tanımlanmamış bir dizi bileşenidir ve var olmaya devam eder. Javascript dizisini çıkarmanız gerekirse, kalan parçaların serbest bırakılan yere kaydırılması için, dizinin presgal yöntemlerinden birini kullanmanız gerekir. Array.shift () yöntemi, ilk bileşeni ortadan kaldırır, POP () nihai bileşendir ve Splice () yöntemi, dizinin herhangi bir yerinde bir veya bir aralık aralığıdır.

Masif Diziler

Görünüşe göre biraz, iki boyutlu bir diziyi çözdük - bu daha ileri düşünülmesi gereken şeydir. JavaScript dizilerinin bileşen olarak diğer unsurları içerebileceğini hatırlıyor musunuz? Bu özellik çok boyutlu diziler üretmek için kullanılır. Bir dizi dizideki bileşenleri ziyaret etmek için, kare ayraçları iki kez uygulamak yeterlidir.

İlişkisel Diziler

Ve şimdi JavaScript Trademark Associative dizilerini kullanacağız. Bunu yapmak için teoriye bakmalıyız: İlişkilendirici dizilerin bazen karma tabloları denir. Onlar sayesinde, dizinler yerine satırlar kullanılır. Bu tür tasarımların kullanımı, basit bir nesne özelliğinin uygulama adını hatırlatır, ancak bir dizi biçiminde iş yaparken bu düzenlemede. Javascript, ilişkisel dizilerle çalışmanın hiçbir yolu yoktur, sıradanlardan çok daha az ortaktır. Veri depolama için hala faydalı olabilecekleri ve erişmeniz gereken parçaların ezberlenmesini basitleştirebilecekleri not edilmelidir.

Dizinin sonucu

Ve JavaScript sisteminde ne okuyoruz? Dizinin iletişim kutusundaki çıkışı (monitör ekranında), ayrıca dizinin bileşenlerinin değerlerinin çıktısı.

Programın tüm bileşenlerin değerini göstermesi gerekiyorsa, bunun için talimatlar için uygulamak uygundur. İlginç bir şekilde, kural değişkeni bir dizi bileşeni endeksi olarak kullanılır.

Temizlik

JavaScript dizisini filtrelemek için, uzunluğu sıfırlamanız gerekir:

  • var myarray \u003d;
  • myarray.Length \u003d 0.
  • temizle: İşlev () ()
  • bu .Length \u003d 0;
  • bunu iade;

Bileşenleri Ekleme ve Çıkarma

Peki, bu ilginç dili JavaScript'i incelemeye devam edelim. Bir dizi elemanı silinebilir ve diğer nesnelerin normal özellikleri ile aynı şekilde eklenebilir. Ancak burada bazı farklılıklar var: Sayısal özellikler eklerken, uzunluk kalitesi değişebilir ve uzunluk özellikleri sayısal niteliklerle ortadan kaldırılabilir. Prensip olarak, dizideki niteliklerin montajı için algoritma:

  • Bilinmeyen bir dijital özellik eklerken, uzunluk daha az I ise, uzunluk i + 1'e eşit olarak belirlenir.
  • Kalite değişikliği ile, uzunluk Aşağıdaki işlemler gerçekleştirilir: Atanan değer sıfırdan azsa, RegisterRor atılır. Tüm sayısal nitelikler ve endeksler, yeni uzunluğa eşit olan ve daha fazlasına eşittir.

Genelde JavaScript dizisi öğesini silmek kolaydır. Sonuçta, uzunluğu takma, "Ekstra" bileşenleri ondan kaldırmanız gerekir. Buradan diziyi temizlemek için gereklidir. Bazı nedenlerden dolayı boş bir yeni dizinin atanmış bir değişkeni uygun değilse ve mevcut, yeterli uzunluk kalitesini sıfıra atamak için sıfırlamak gerekir.

Kayma, vardiya, pop ve push yöntemleri

Dizi bileşenlerinin manuel olarak değiştirilmesine rağmen, birçoğu gömülü yöntemlerin bunun için geçerli olmasını önerir. Bu, uzunluk kalitesinin doğru değerini ve atlama dizisindeki yokluğun doğru değerini garanti eden bu nüans. Bu arada, doğru uzunluk kalitesi bileşen sayısına karşılık gelecektir.

İtme yöntemi detayları dizinin sonuna aktarır. POP yöntemi son bileşeni geri verir ve kaldırır.

Genel olarak, Internet Explorer'da, Unshift'in sekizinci sınıf versiyonu, diğer tarayıcılarda, yeni uzunluk değeri için tanımlanmamıştır. Yani unshift'in dönüşünde, değer umut etmemek daha iyidir.

Dizinin ortasında parçaları eklemek ve ortadan kaldırmak

JavaScript dizisini silmeniz gerekiyorsa, ne yapmalıyım? Ekleme yönteminin bir array.Prototype.Splice imzası olduğu bilinmektedir.

Dizisinden, başlangıç \u200b\u200bgöstergesinden başlayarak deletecount bileşenlerini geri çeker. İkiden fazla argüman iletilirse, dizideki tüm sonraki argümanlar tasfiye yerine yerleştirilir. Başlat eksi ise, çekilmenin devam edeceği dizin, uzunluk + başlamaya eşit olacaktır. Bir diziye dönüş uzak elemanlardan gelir.

Aslında, Splice yöntemini kullanarak, bileşenleri dizinin ortasından çıkarabilir veya herhangi bir dizi yerine herhangi bir miktar ekleyebilirsiniz.

En basit düzenlemesinde, bileşeni INDEX I ile çıkarmanız gerekiyorsa, ekleme yöntemini parametreler I ve 1 ile dizi ile sorgulamak gerekir.

Prensip olarak, ekleme yöntemindeki ikinci parametre zorunlu değildir, ancak fonksiyonun her tarayıcıda bir argümanla davranışı farklıdır.

Örneğin, Firefox'ta, en son operanın varyasyonlarında, safarilerde ve kromda tüm parçalar dizinin sonuna kadar ele geçirilecektir.

IE'de hiçbir bileşen yok edilmez. Operanın ilk farklılıklarında, davranışın tahmin edilmesi imkansızdır - bir kısmı Başlat Dizini - 1. ile ele geçirilecektir. Bu nedenle, bu yönteme en az iki bileşeni iletmek her zaman gereklidir.

Anahtarlar

Tabii ki, Javascript, İlişkilendirici Diziler, daha önce belirtildiği gibi, görmeyi kaçırmamak da gereklidir. Bu, "(Anahtar, Miktar)" türünü kaydetmenize olanak sağlayan ve bir çift ekleme ve bir çift aramanın çalışmasını desteklemenizi sağlayan soyut bir bilgi türü (veri ambarına arabirim). Anahtar:

Bulun (anahtar).

Eklemek (değer, tuş).

Kaldırmak.

İlişkili dizide benzer anahtarlara sahip iki çiftin korunamadığı varsayılmaktadır. Çift K + V V, K tuşuyla ilişkili değer olarak adlandırılır. Yukarıdaki operasyonların anlamı ve isimleri, bu tür dizilerin çeşitli uygulamalarında farklı olabilir.

Böylece, Bul Action, belirli bir anahtarla ilişkili olan değeri veya belirli bir belirli bir Undef nesnesine döndürür, bu da belirtilen anahtarla ilişkili değerin eksik olduğu anlamına gelir. Diğer iki eylem hiçbir şeye iade edilmez (bu işlemin başarıyla gerçekleştirilmediği için veriler hariç).

Genel olarak, arayüzün bakış açısına göre, birleştirici dizi rahatça basit bir dizi olarak kabul edilir, bu da, yalnızca tamsayıların uygulanabileceği, aynı zamanda diğer türlerin değerlerini de - örneğin , Teller.

Bu arada, bu tür diziler için destek, PHP, Perl, Ruby, Python, TCL, JavaScript ve diğerleri gibi birçok üst düzey izlenebilir yazılımda mevcuttur. İlişkilendirici dizilerle çalışmak için yerleşik araçları olmayan diller için, kütüphaneler biçiminde devasa bir uygulama sayısı oluşturulur.

İlişkili bir dizi örneği bir telefon rehberi olabilir. Bu düzenlemede, değer kompleksidir "F. I. O. + Adres "ve anahtar telefon numarasıdır. Bir telefon numarası bir sahibi var, ancak bir kişi birkaç sayıya sahip olabilir.

İlişkisel genişlemeler

En ünlü uzantıların aşağıdaki işlemleri içerdiği belirtilmelidir:

  • Her bir tasarruf çiftlerinde "yürüyün".
  • Temizle - tüm kayıtları geri çekin.
  • Min - Küçük bir anahtar değeri olan bir çift bulun.
  • Max - en büyük anahtar değeri olan bir çift bulun.

Son iki seçenekte, karşılaştırma işleminin anahtarlar üzerinde belirtilmesi gerekir.

İlişkilendirici Mastivers Satışı

İlişkisel bir dizinin birçok farklı uygulaması var. En yaygın uygulama, bileşenleri çiftler (değer, anahtar) olan basit bir diziye dayanabilir. Arama işlemlerini hızlandırmak için, bu dizinin bileşenlerini anahtar ve egzersize göre aktarabilirsiniz, ancak bu, dizinin bileşenlerini "itmek" için, yeni bir çift eklemek için gereken zaman aralığını artıracaktır. Taze bir kaydı paketleyen boş hücre.

Çeşitli arama ağaçlarına dayanan en ünlü uygulama. Örneğin, C ++ dilinin STL'sinin standart okuma odasında, harita konteyneri siyah ve kırmızı bir ağaç temelinde uygulanır. Ruby'de, TCL stilleri, Python, karma masasının türlerinden birini uygular. Başka uygulamalar da var.

Genel olarak, her uygulamanın dezavantajları ve onuruna sahiptir. Her üç eylemin de hem ortalama hem de ortalama olarak ve O (log n) için en kötü nüansın yerine getirilmesi önemlidir, burada N'nin mevcut kaydedilen buhar sayısıdır. Koordineli arama ağaçları için (siyah-kırmızı ağaçlar dahil), bu durum yerine getirildi.

Hash tablolarına dayanan uygulamalarda, ortalama süre, arama ağaçlarına dayanan eylemlerden daha iyi olan O (1) olarak tanımlandığı bilinmektedir. Tabii ki, bireysel işlemlerin yüksek hızlı bir şekilde yürütülmesini garanti etmez: ek, en kötü durumda, O (n) olarak belirtilir. Ekleme işlemi, doldurma katsayısı en yüksek noktaya ulaştığında uzun süre gerçekleştirilir ve Hash tablosu indeksini yeniden oluşturma ihtiyacı.

Bu arada, bu karma ifadeleri kötüdür, bunun temelinde, tüm kaydedilmiş çiftlerin azalan sırayla veya anahtarları artırdığı için maksimum, min ve algoritmanın hızlı ek eylemlerini yerine getirmek imkansızdır.

Masifler, Array Designer tarafından sağlanan çeşitli yöntemlerle çalıştırılabilir.

POP / İtme ve Vardiya / Unshift yöntemleri

POP () ve push () yöntemlerini düşünün. Bu yöntemler, yığınlarla olduğu gibi dizilerle çalışmaya izin verir. Yığın, Elementlere erişimin, Lifo prensibine göre düzenlendiği bir veri yapısıdır (İngilizce. Sonuncusu, "ilk önce" ilk önce geldi - ilk sola "). Yığının çalışma prensibi, bir plaka yığını ile karşılaştırılabilir: ikinci üst üste çıkarmak için üst olanı çıkarmanız gerekir. Resimde gösterilen nasıl çalışır:

Ve bu yüzden bize push () ve pop () yöntemlerinin değerlendirilmesine geri dönelim. Push () yöntemi, dizinin sonuna bir veya daha fazla yeni öğe ekler ve yeni bir uzunluk verir. POP () yöntemi, dizinin son elemanını siler, dizinin uzunluğunu azaltır ve remand değerini döndürür. Bu yöntemlerin her ikisinin de diziyi değiştirdiği gerçeğine dikkat etmeye değer ve değiştirilmiş kopyasını oluşturmaz.

Var foo \u003d; // foo: foo.push (1,2); // foo: 2 foo.pop () döndürür; // foo: 2 foo.push (3) döndürür; // foo: 2 foo.pop () döndürür; // foo: 3 foo.push () döndürür; // foo:] 2 foo.pop () // foo döndürür: foo.pop () döndürür; // foo: 1 var meyveleri \u003d ["armut", "muz", "elmalar"] döndürür; var seçti \u003d fruits.pop (); Document.write ("" + benim "aldım); Deneyin

Shift () ve Unshift () yöntemleri büyük ölçüde yanı sıra POP () ve push () 'ı, dizinin başlangıcındaki elemanları takıp çıkarmaları dışında (). Unshift () yöntemi, yeni elemanlar için boşluk çıkarmak için büyük endekslere doğru mevcut unsurları görüntüler, dizinin başlangıcına bir veya daha fazla öğe ekler ve dizinin yeni bir uzunluğu döndürür. Shift () yöntemi, dizinin ilk elemanını siler ve sonraki unsurları dizinin başlangıcında boş alan işgal etmek için değiştirerek değerini döndürür.

Var f \u003d; // f: f.unshift (1); // f: İade: 1 f.unshift (22); // f: İade: 2 f.shift (); // f: dönüşler: 22 f.unshift (3,); // f :, 1] İadeler: 3 f.Shift (); // f: [, 1] İade: 3 f.Shift (); // f: dönüşler: f.shift (); // f: İade: 1

Katılmak

Array.join () yöntemi, bir dizi öğelerini bir satırda birleştirmek için kullanılır. Yöntem, dizideki elemanları ayırmak için kullanılacak isteğe bağlı bir dize argümanına aktarılabilir. Ayırıcı belirtilmezse, yöntemi çağırırken, varsayılan sembol virgül olacaktır.

Var a \u003d ["rüzgar", "yağmur", "ateş"]; var myvar1 \u003d a.join (); // "rüzgar, yağmur, ateş" var myvar2 \u003d a.join (","); // "rüzgar, yağmur, ateş" var myvar3 \u003d a.join ("+"); // "Rüzgar + Yağmur + Ateş" Document.Write (Myvar1 + "
"+ Myvar2 +"
"+ Myvar3); deneyin"

Array.Join () yöntemi, dizeyi parçalara ayırarak bir dizi oluşturan String.Split () yöntemine göre ters çevirir.

Ters yöntem

Array.Reverse () yöntemi, dizideki elemanların sırasını değiştirir ve yeniden düzenlenmiş elemanlarla bir diziyi döndürür. Bu yöntem yeniden düzenlenmiş elemanlara sahip yeni bir dizi oluşturmaz ve bunları mevcut bir dizide geçer.

Var myrarr \u003d ["bir", "iki", "üç"]; belge.write (myarr.reverse ()); Deneyin

Concat yöntemi

Array.concat () yöntemi, Concat () yönteminin çağrıldığı, Concat () yöntemi tarafından iletilen tüm argümanların değerleri ile tutarlı bir şekilde tamamlanan kaynak dizinin unsurlarını içeren yeni bir dizi oluşturur ve döndürür. Bu argümanlardan herhangi biri kendisi bir dizi ise, tüm elemanları eklenecektir. Dizi adları argümanlar olarak kullanılır ve öğelerinin birleştirilmesi gereken sırayla belirtilir.

Var a \u003d; A.Concat (4, 5) // A.Concat () döndürür; // aynı - döndürür A.Concat (,) // İade

Sıralama yöntemi

Array.sort () yöntemi, dizinin elemanlarını sıralar ve sıralanan diziyi döndürür. Eğer sıralama () yöntemi bir argüman olmadan çağrılırsa, dizinin unsurlarını alfabetik bir sırayla sıralıyor (geçici olarak karşılaştırmayı karşılaştırmak için dizgiler halinde dönüştürür). Bir argüman olarak, sıralama () yöntemi, öğeleri sıralama sırasını belirleyen bir karşılaştırma işlevi alabilir.

Var a \u003d ["Kiwi", "portakal", "armutlar"]; a.Sort (); var s \u003d a.join (","); // portakal, armut, kivi belgeleri.writ (ler); // sayılarla örnek var myarr \u003d; myarr.sort (); Document.write (myarr); // 1,10,2 deneyin "

Muhtemelen, biraz farklı bir sonuç görmeyi beklediğiniz numaraları sıralama. Böyle bir sıralama, sıralama () yöntemi, öğeleri dizeleri dönüştürerek sıralar çünkü oluştu. Bu nedenle, siparişleri bir dize tarafından elde edilir - çünkü "10"

Alfabetik dışındaki diğer sıraları sıralamak için, sıralama () yöntemini karşılaştırma işlevini argüman olarak aktarabilirsiniz. Ancak, karşılaştırma işlevinin yazılı olması gerektiği belirtilmelidir. Bu özelliğin, iki argümanından hangisinin sıralanan listeden daha önce bulunması gerektiğini belirlediği gibi iki parametreye sahip olmalıdır. Böyle bir işlevi çözmeyi ve yazmayı kolaylaştırmak için, öğelerin sırasının belirleneceği birkaç kural vardır:

  • İlk argüman ikincinden önce gelmesi gerekiyorsa, karşılaştırma işlevi negatif bir sayı döndürür (eğer
  • İlk argüman ikinciyi takip etmelise, karşılaştırma işlevi pozitif bir sayı döndürür (eğer A\u003e B)
  • İki değer eşdeğer ise (yani, konumlarının sırası önemli değildir), karşılaştırma işlevi 0 döndürür (eğer a \u003d\u003d b)

Karşılaştırma için, fonksiyon dizinin unsurlarını argümanları olarak kullanır:

Foo Foo (A, B) (// (bir b) döndürme işlevini kontrol etme işlevini belirleyin; 0; // a \u003d\u003d b) Var a \u003d; A.SORT (FOO); // sadece belgenin adı.Write işlevi bir argüman olarak iletilir (A.JOIN (",")); // ayrıca daha kısa sürede yazılmış var a \u003d; A.SORT (fonksiyon (A, B) (// Anonim fonksiyon dönüşünü kullanın A - B; // işlev 0 değerini döndürür); Belge.write (a); // 1,2,5,10 deneyin "

İlk giriş, örnekte, nasıl çalıştığını anlamak daha kolaydır. İkinci parçada anonim bir işlevi kullanmak için ne kadar uygun olduğuna dikkat edin. Sadece bir kez denir, bu yüzden ona bir isim vermeye gerek yok.

Not: Dizi (tanımsız) için belirsiz unsurlar varsa, dizinin sonuna aktarılırlar.

Dilim yöntemi

Array.slice () yöntemi, belirtilen alanı diziden kopyalamak için kullanılır ve kopyalanan elemanları içeren yeni bir dizi döndürür. Kaynak dizisi değişmez.

Yöntem Sözdizimi:

Name_massiva.slice (başlangıç, son);

Mail_name, yeni bir dizi için belirli bir öğe kümesi çıkarmanız gereken o dizinin adı ile değiştirilmelidir. Yöntem, dizinin iade edilen alanının başlangıcını ve sonunu belirleyen iki argüman alır. Yöntem, sondan sona ermeye başlayan dizi kısmını sonlandırma, son eklememektedir. Keşke bir argüman belirtilmişse, döndürülen dizinin tüm öğeleri, dizinin sonuna kadar belirtilen konumdan içerecektir. Negatif endeksleri kullanabilirsiniz - dizinin sonundan sayılırlar.

Var arr \u003d; Arr.Slice (0.3); // arr.slice (3) döndürür; // arr.slice (1, -1) döndürür; // arr.slice (-3, -2) döndürür; // İadeler

Ekleme yöntemi

Array.Splice () yöntemi, dizilerle çalışmak için evrensel bir yöntemdir. Diziyi yerinde değiştirir ve Slice () ve Concat () yöntemleri yaptıkça yeni bir değiştirilmiş dizi döndürmez. Splice yöntemi, dizideki elemanları silebilir, yeni elemanlar ekleyebilir, elemanları değiştirebilir - sırayla ve aynı anda. Öğelerin hiçbiri kaldırılmadıysa, uzak elemanlardan oluşan bir dizi döndürür, boş bir diziyi döndürür.

Yöntem Sözdizimi:

Lassiva Name.Splice (Dizin, Sayım, Elem1, ..., Element);

İlk argüman, öğelerin eklenmesinin veya çıkarılması dizideki dizini gösterir. İkinci argüman, ikinci argüman 0 ise, ilk argümanda belirtilen dizinden çıkan dizinden çıkarılması gereken öğelerin sayısını ayarlar, daha sonra öğeler silinmeyecektir. İkinci argüman ihmal edilirse, dizinin tüm indeksinden dizinin sonuna başlayan tüm öğeleri kaldırılır. Negatif pozisyon numarası kullanırken, elemanların geri sayımı dizinin sonundan çıkacaktır.

Var meyveler \u003d ["portakallar", "elmalar", "armutlar", "üzüm"]; var Silindi \u003d Meyveler.Splice (2.2); // ["armutlar", "üzüm"] belgesini verir.WRITE (silinmiş); var arr \u003d; Arr.Splice (4); // İadeler; Dizi şöyle oldu: arr.splice (1,2); // İadeler; Bir dizi: arr.splice (1,1); // İadeler; Array oldu: dene "

Splice () yönteminin ilk iki argümanı, sökülmesi gereken dizinin elemanlarını ayarlar. Bu iki argüman için, ilk argüman tarafından belirtilen konumdan başlayarak bir diziye yerleştirilecek olan öğeleri belirten herhangi bir sayıda ek argüman.

Var meyveler \u003d ["portakal", "elmalar"]; meyveler.Splice (2.0, "karpuzlar"); // document.write (meyveler) döndürür; // ["portakal", "elmalar", "karpuzlar"] var arr \u003d; Arr.Splice (2.0, "a", "B"); // İadeler; Arr.Splice (2.2,); // ["a", "b"] döndürür; 3,4,5] deneyin "

Buna, Concat () 'nin aksine, ekleme () yöntemi, argümanlar olarak iletilen dizilerin ayrı elemanlarına girmemeye dikkat etmeye değer. Yani, bir dizi yerleştirme yöntemine geçerse, bir diziyi kendisi ve bu dizinin unsurlarını taklit ederse.

TOSTRING yöntemi

TOSTRING () yöntemi, dizinin elemanlarını bir virgülle, bölünmüş bir sembol olarak kullanarak dönüştürür.

Var arr \u003d ["süt", "ekmek", "çerezler"]; var food \u003d arr.tostring (); Belge.write (gıda); // süt, ekmek, kurabiye deneyin "

Not, yöntem, argümasızca ararken, aynı dizeyi JOIN () yöntemiyle döndürür.

Endeks ve lastIndexof

Endeks dosyası yöntemi, değeri bir argüman olarak iletilen değere eşit olan öğe dizinini döndürür.

Sözdizimi Yöntemleri Dizin () ve LastIndIndexof ():

Label_name.indexof_name (Skeeping_Element, Index) adı MMassiva.Lastindexof (istenen_Element, dizin)

Yöntemin ilk argümanı, elemanın değerini, bulmanız gereken endeksi, ikinci argüman (isteğe bağlı), aramanın başlayacağı dizini gösterir. Aynı olaylar biraz varsa, en küçük (birinci) dizin seçilir. İstenilen değeri olan eleman bulunamadıysa, yöntem döner -1. Arama yönteminin içinde, sıkı bir karşılaştırma kullanılır (\u003d\u003d\u003d).

Var a \u003d; A.indexoF (3); // 2 A.indexof (3.4) döndürür; // 6 A.indexof (35) döndürür; // return -1: Böyle bir değeri olan A.Indexof (2); // bir

LastIndExOf () yöntemi ayrıca, değeri bir argüman olarak iletilen değere eşit olan eleman endeksini döndürür. Tek fark, LastIndExof () yönteminin en büyük (son) dizini seçmesidir.

Var a \u003d; a.lastindexof (3); // geri döndürür 7 a.lastindexof (35); // RETURN -1: A.Lastindexof (2) 'nin böyle bir değeri olan öğe yok; // 6.

Yinelatör yöntemleri

Aşağıda açıklanan yöntemler yineleyicidir. Dizilerle çalışmak için tüm modern tarayıcılarda, elementlerin kalabası için tasarlanmış ve bunlar üzerinde çeşitli eylemler gerçekleştiren yöntemler vardır. Bunlar foreach (), harita (), filtre (), her (), bazıları, azaltmak () ve redüksiyon ().

Dizinin elemanlarını 0'dan uzunluğa - 1'den itibaren hareket ettirirler ve öğe var ise, geri arama işlemcisi işlevine iletin.

Her biri için.

Yöntem Sözdizimi:

Name_massiva.foreach (geri arama, thisarg)

İlk argüman olarak, geri arama işlevi, FOREACH () yönteminin dizinin her bir öğesi için arayacağı belirtilir. Denilen işleyici işlevinin uygulanması yazılmalıdır. Elde edilen fonksiyonun üç parametresine sahip olması gerekir: İlk parametre bir argüman olarak alır - dizi öğesinin değeri, ikincisi, öğenin endeksidir ve üçüncüsü dizinin kendisidir. Ancak, yalnızca Dizi öğelerinin değerlerini kullanmanız gerekirse, yalnızca bir parametre ile bir işlev yazabilirsiniz. İkinci argüman - thisarg (isteğe bağlı) bunun değeri olarak aktarılacaktır.

Var arr \u003d; Foo Foo (değer) (VAR SUM \u003d değeri * Bu; Dönüş belgesi.write (Sum + "
");) Arr.foreach (foo, 5); // İkinci argüman, bu // örneğin üç parametreye sahip bir örneğin değeri olarak aktarılacaktır. .WRITE ("A [" + IDX + "] \u003d" + EL + "in [" + a + "]
");)); Deneyin"

Filtre.

Yöntem Sözdizimi:

Mmassive name.Filter (geri arama, thisobject)

Filtre () yöntemi oluşturur ve geri arama aramasının doğru döneceği dizinin sadece öğelerini içerecek olan yeni bir dizi oluşturur.

İşlev ISBIG (ELEMAN, Dizin, Dizi) (//, 10'a eşit veya daha büyük olan numaraları döndürür (öğe\u003e \u003d 10); // Elemanın değeri 10'dan büyük veya ona eşitse - İfade geri döner Doğru) var filtre edildi \u003d .Filter (isbig); // filtre edildi.

harita

Harita () yöntemi, dizinin her bir elemanı için geri arama işlevini (Öğe, IDX, AR) çağırmaktan oluşan yeni bir dizi oluşturur ve döndürür.

Var a \u003d; Var b \u003d a.Map (işlev (Öğe, IDX, ARR) (iade maddesi * öğe;)); // b \u003d

Her ve bazıları

Her () yöntemi, tüm dizi elemanları için, bunları kontrol etmek için kullanılan belirtilen işlev doğru geri döner.

Bazı () yöntemi, test sırasında bir veya daha fazla öğe belirtilen fonksiyona iade edildiğinde true döndürür.

Var a \u003d; A.ER (x) (X 10;)) // true: bir sayı\u003e 10

Azaltmak ve redüktör

Yöntem Sözdizimi:

Maç_reduce_name (geri arama, başlatma-değer) adı Lassiva.ReduCeright (geri arama, başlangıçValue)

Azalt () yöntemi, bir ara sonucu korurken, dizideki öğeleri soldan sağa doğru çevirerek, dizi hemen iki değerle ilgili olarak belirtilen işlevi (geri arama) uygular.

Geri arama fonksiyonu argümanları: (Önceki Doldurma, Currentem, Dizin, Dizi)

  • ÖncekiValue - İade Sonucu Geri Dönüş Özellikleri (bir ara sonuçtur)
  • cURRENTEM - Dizinin geçerli elemanı (öğeler sola döndürülür)
  • endeks - Geçerli elemanın endeksi
  • array - Array İşlendi

başlangıçValue (başlangıç \u200b\u200bdeğeri), geri arama işlevinin ilk çağrısı için ilk argüman olarak kullanılan bir nesnedir. Basitçe söylemek gerekirse, Önceki gereğinin değeri ilk çağrıya ilk değerdedir. Eğer ilk değer değilse, o zaman dizinin ilk elemanına eşittir ve büstü ikinciden başlar:

Var a \u003d; Foo Foo (Prevnum, Curnum) (Sum \u003d Prevnum + Curnum; Uyarı (Toplam); Dönüş Toplaması;) Var Sonuç \u003d A.Reduce (Foo, 0); Belge.write (sonuç); Deneyin

Bu örneğin nasıl çalıştığını analiz edeceğiz. Foo fonksiyonunun ilk argümanları:

  • prevnum \u003d 0 (başlangıçValue - 0)
  • cURNUM \u003d 1 (Geçerli eleman - dizinin 1. elemanı)

1. Bu sonuç (toplamı: 1) eklenir. Bu sonuç, işlev daha sonra başladığında prevnum olarak kabul edilecektir. Ve böylece son elemana ulaşana kadar. İade edilen sonuç - son fırlatmanın toplamı 15 (1 + 2 + 3 + 4 + 5) olacaktır.

Redüksiyon yöntemi, azaltma yöntemine benzer şekilde çalışır, ancak sağ soldaki masifte gider:

Var a \u003d ["h", "o", "m", "e"]; Fonksiyon çubuğu (prevstr, curiimem) (iade prevstr + curiem;) document.write (a.ReduCeright (bar)); // emoh.

JavaScript'te, diğer programlama dillerinde olduğu gibi, dizilerle çalışmak için farklı yöntemler uygulanır.

Yöntemler Mantığın yapımını ve uygulamasını komut dosyasında basitleştirir.

JS'deki dizilerle çalışma için temel yöntemler aşağıda.

İt.

Push () yöntemi, dizinin sonuna bir değer katar.

ARR \u003d; Arr.Push (312); Console.log (arr); // →

Pop

POP () yöntemi, son öğeyi dizisinden siler veya değerini döndürür.

ARR \u003d; arr.pop (); Console.log (arr); // →

Son dizi öğesinin değerini elde etme yeteneğini kullanarak, örnek olarak, görüntü formatını alabiliriz:

İmg \u003d "https://example.com/img/name.png"; Biçimlendirilmiş \u003d img.split ("."). Pop (); Konsol.log (format); // → png console.log (img.split (".")); // → ["https: // Örnek", "COM / IMG / ADI", "PNG"]

kaydırma.

Unshift () yöntemi, dizinin başlangıcına bir eleman ekler.

ARR \u003d; arr.unshift (312); Console.log (arr); // →

Vardiya.

Shift () yöntemi, ilk elemanı dizisinden siler.

ARR \u003d; arr.shift (); Console.log (arr); // →;

Shift ve Unshift yöntemlerini kullanırken, dizinin her bir elemanını indeksini değiştirdiği anlaşılmalıdır. Bu, dizinin daha uzun bir uzunluğu varsa, programın yürütülmesini yavaşlatabilir.

Bölünmüş.

Bölünmüş () yöntemi, bir dize bir diziye dönüştürmek için kullanılır. Bölünme, dizgiyi (string) belirtilen parametre ile paylaşır.

Str \u003d "Anya, Masha, Sasha, Dasha"; // bu, izin arr \u003d str.split string (","); Console.log (arr); // → ["Anya", "Masha", "Sasha", "Dasha"] - Bu bir dizi

Katılmak.

Birleştirme () yöntemi, dizideki dizinin elemanlarını parametrede belirtilen ayırıcıdan birleştirir.

ARR \u003d ["notpad ++", "yüce", "vscode"]; // bu dizi str \u003d arr.join (","); Konsol.log ("kod editörleri:" + str); // → "Kod için Editörler: Notpad ++, Sublime, VSCODE"

Dilim.

Slice () yöntemi, öğeleri kaynaktan öğeden birinci parametrenin diziniyle, ikinci parametrenin dizini ile metoda iletilen birinci parametrenin dizini ile kopyalar.

Örneğin: Dilim (3, 7), 3, 4, 5, 6 indeksleriyle öğeleri döndürür. Endeks 7 olan eleman bir diziye girmez.

Negatif bir değeri olan bir parametre dilimi () aktarılırsa, parametrede belirtilen öğelerin sayısıyla yeni bir dizi döndürür, ancak kaynak dizinin sonundan zaten alınmıştır.

Dilim yöntemi kaynak dizisini değiştirmez.

İşte dilim () yönteminin bazı örnekleri:

ARR \u003d ["a", "B", "C", "D", "E", "F", "G"]; // Dizi, indeksleri 2 ila 5 console.log (ArR.Slice (2, 5)); // → ["C", "D", "E"] //, 3'ten Arr.Length Console.log (ArR.SLICE (3)); // → ["D", "E", "F", "G"] // Kaynak Array Console.log'un bir kopyasını döndürür (ArR.Slice ()); // → ["A", "B", "C", "D", "E", "F", "G"] //, kaynak konsolun son üç elemanından oluşan yeni bir dizi döndürür. log (arr.slice (-3)); // → ["E", "F", "G"]

Uzanmak

Splice () yöntemi, mevcut unsurları sökerek ve / veya yenilerini ekleyerek dizinin içeriğini değiştirir.

Sözdizimi:

Array.Splice (başlangıç, deletecount [, item1 [, item2 [, ...]]])

Parametreler:

  • başlat. - Bir diziyi değiştirmeye başlamak için indeksleyin. Dizinin uzunluğu daha büyükse, gerçek endeks dizinin uzunluğuna ayarlanır. Negatifse, öğenin endeksini sonundan itibaren gösterir.
  • deletecount. - Array'dan çıkarılan eski elemanların sayısını gösteren bir tamsayı. DELETECOUNT 0 ise, öğeler silinmez. Bu durumda, en az bir yeni öğe belirtmeniz gerekir. DELETECOUNT, dizideki öğe sayısından daha fazlası ise, Başlat dizininden başlayarak, tüm elemanlar dizinin sonuna kadar çıkarılır.
  • İtemn. - İsteğe bağlı parametreler. Diziye eklenen elemanlar. Herhangi bir öğeyi belirtmezseniz, Splice () öğeleri dizisinden kaldırır.

Geri dönüş değeri

Açıklama

Belirtilen ekleme elemanlarının sayısı kaldırılan öğeler miktarından farklıysa, dizi aramanın ardından uzunluğu değiştirir.

ARR \u003d ["BARÇA", "Miner", "MJ", "Milan", "Gerçek", "Ajax", "Juventus"]; Nax \u003d arr.splice (2, 3); Arr.Splice (2, 3); Console.log (nax); // → ["MJ", "Milan", "gerçek"] konsol.log (arr); // → ["BARÇA", "MINER"] ARR.SPLICE (1, 0, "ZENIT", "CSKA", "Spartak"); Console.log (arr); // → ["Barça", "Zenit", "CSKA", "Spartak", "Miner"]

Tersine çevirmek

Ters () yöntemi, dizinin unsurlarının sırasını tersine değiştirir. Sonuç olarak, dizinin ilk elemanı en son olur ve son öğe ilk ise.

ARR \u003d; Konsol.log (arr.Reverce ()); // → konsol.log ([Alice "," BG "," GO "," DDT "]. Reverce ()); // → ["DDT", "GO", "BG", "ALICE"]]

harita

Harita () yöntemi, belirtilen işlemleri üreten dizinin elemanlarından geçer ve değiştirilmiş öğelerle dizinin bir kopyasını döndürür.

Aşağıdaki örnekte, dizinin her bir elemanına, bu elemanın indeks değerini ekleyin (7 + 0, 2 + 1, 15 + 2, 4 + 3, 31 + 4):

ARR \u003d; TestMap \u003d arr.map ((eleman, dizin) \u003d\u003e Element + Endeksi); Console.log (test haritası); //

veya dizinin her değeri, örneğin 12'de çarpın

ARR \u003d; Testmap \u003d arr.map (a \u003d\u003e a * 12) izin verin; Console.log (test haritası); // →

Filtre.

Filtre () yöntemi, dizileri filtrelemek için kullanılır. Dizi boyunca geçer, yalnızca belirtilen durumu geçen öğeleri geri getirir.

Örneğin, dizinin değerlerini yalnızca 21'den fazla olanları bırakan sayılardan filtreleyin.

ARR \u003d; TestFilter \u003d Arr.Filter (Element \u003d\u003e Element\u003e 21); Console.log (testfilter); // →

21'in Dizi'nin sonucuna girmediğini, çünkü durumun 21'den fazla döndüğü için, 21'den fazla bir diziye girmesi gerektiğini unutmayın.

azaltmak

Azalt () yöntemi sıralı olarak, ara sonuçları durumunda belirtilen fonksiyona göre biriken, dizi elemanlarını takip eder. Sonuçta, sadece bir değer döndürür.

Genellikle bu yöntem, dizideki tüm numaraların toplamını bulmak için kullanılır. Misal:

ARR \u003d; Summa \u003d Arr.Reduce ((ACC, Element) \u003d\u003e ACC + Element); Konsol.log (Summa); // → 370.

Çeşit.

Sıralama () yöntemi, dizi öğelerini belirtilen parametrelere göre sıralamak için kullanılır.

Örnek - iade sırasına göre sıralamak hakkında bir dizi numara alın:

ARR \u003d; TESTSORARR \u003d arr.sort ((a, b) \u003d\u003e a - b); Console.log (testsorr); // →

içerir.

() () Yöntemi, dizinin belirli bir öğe içerip içermediğini belirler, bu doğru veya yanlışlığa bağlı olarak döndürür.

Kullanma örneği ().

İşte mantıklı bir ifadedir:

Hayvan \u003d "köpek"; İf (hayvan \u003d\u003d "kedi" || Hayvan \u003d\u003d "Köpek" || Hayvan \u003d\u003d "Aslan" || Hayvan \u003d\u003d "At") (// ........)

İçeriği kullanarak yöntemi kullanmak böyle yazılabilir:

Hayvan \u003d "köpek"; Const hayvanlar \u003d ["kedi", "köpek", "aslan", "at"]; Eğer (hayvanlar.inkudes (hayvan)) (// ...........)

Bu derste, dizilerle tanışacağız, bunların nasıl oluşturulacağını öğreneceğiz, unsurlarındaki işlemleri gerçekleştirmenin yanı sıra onlarla çalışırken mevcut ana yöntemleri ve özellikleri göz önünde bulundurun.

Masif Kavramı

Bir dizi, adı olan ve dizi nesnesinin bir örneği olan sipariş edilen bir veri setidir. Sıralama numaraları (dizin) kullanılarak gerçekleştirilen elementlerden oluşur. Dizideki unsurların numaralandırılması 1 ile değil, 0'dan itibaren başlar.

Aşağıdaki şekilde 7 elementten oluşan sayısal bir diziyi göstermektedir. Bu dizinin unsurları aşağıdaki verileri içerir: 1 eleman (0 indeks) - numara 123, 2 eleman (1 indeks) - Sayı 214, 3 eleman (2 indeks) - numara 315, vb.

// bir diziyi geri çekeceğimiz öğe

Yaratılış (duyuru) dizisi

JavaScript dizisinin oluşturulması, yeni operatör ve dizi yapıcısı işlevi kullanılarak gerçekleştirilir. Dizi işlevinin yuvarlak braketlerinde, aşağıdaki değerlerden birini belirleyebilirsiniz:

  • Numara. Bu durumda, bu işlev belirtilen madde sayısından oluşan bir dizi oluşturur. Tüm bu öğelerin tanımsız değerlere sahip olacaktır.
  • Virgül aracılığıyla birkaç değer. Bu durumda, Dizi Tasarımcısı işlevi, belirtilen sayıda öğeden oluşan bir dizi oluşturur ve bunları karşılık gelen değerleri atar.
  • Hiçbir şey değil. Bu durumda, bu işlev boş bir dizi oluşturur.

Diğer birçok dil programlama dilinin aksine, JavaScript boyutunu otomatik olarak değiştirir, yani. Başlangıçta dinamiklerdir. Bu tür dizilerin herhangi bir boyutu ayarlaması gerekmez. JavaScript dizilerinin bir başka belirgin özelliği, aynı dizideki çeşitli elemanların çeşitli veri türleri içermesidir.

Dizi elemanları ile çalışma

Belirli bir dizi öğesine atıfta bulunmak için, bu dizinin adını ve kare parantez içinde işaretini belirtmelisiniz. Bu işlem de indeksleme işlemi olarak adlandırılır.

Örneğin, boş bir dizi oluşturun ve 4 metin öğesini ekleyin:

// Boş bir dizi oluşturma SmartphoneColors Var SmartphoneColors \u003d Yeni dizi (); // dizinin 1 elemanını atama (indeks 0) 'ya "Black" smartphoneecolors \u003d "Black"; // dizinin 2 elemanını atama (indeks 1) "beyaz" değeri SmartphoneColors \u003d "White"; // Dizinin 3 unsurunu (indeks 2) "Gri" a smartphoneecolors \u003d "Gri"; // Dizinin 4 unsurunu atıyoruz (indeks 3) "Mavi" için SmartphoneColors \u003d "Mavi";

Örneğin, tarayıcı konsolunda (F12) 2 ve 4 akıllı telefoncolör dizisinin 4 elemanlarında çekin:

Konsol.log ("2 element \u003d" + smartphonecolors); console.log ("4 element \u003d" + smartphonecolors);

Büyük uzunluk (dizideki eleman sayısı)

Dizideki öğe sayısının belirlenmesi, uzunluk özelliği kullanılarak gerçekleştirilir.

// dizi var volumehdddds \u003d yeni dizideki ("500 GB", "1TB", "2TB"); // uzunluk değişkeni Masif Volumehdds var uzunluğunun uzunluğunu atayın \u003d volumehdds.length;

Dizinin ilk unsuru nasıl alınır

Dizinin ilk unsurunun değerini elde etmek, bu sayı 0 dizisinin köşeli braketlerindeki gösterge kullanılarak gerçekleştirilir:

// 3 hücreden oluşan bir dizi oluşturma Var Volumehdds \u003d yeni dizi ("500 GB", "1TB", "2TB"); // VaS FirstValue'nin ilk unsurunun değerini elde etme \u003d Volumehdds dizisi;

Dizinin son unsuru nasıl alınır

Dizinin son elemanının değerini elde etmek, expression_name_length-1 dizisinin köşeli parantezlerdeki talimatlar kullanılarak gerçekleştirilir:

// 3 hücreden oluşan bir dizi oluşturma Var Volumehdds \u003d yeni dizi ("500 GB", "1TB", "2TB"); // Var LastValue'nin son unsurunun değerini al \u003d Volumehdds dizisi;

Büstü massiva

Dizi öğelerinin kaba kuvveti, döngü için kullanılarak gerçekleştirilir.

Örneğin, dizinin tüm öğelerini hareket ettirerek ve değerlerini tarayıcı konsoluna (F12) getirerek:

// VAR Namestudents'in 4 unsurundan oluşan bir namestudent dizisi oluşturma \u003d yeni dizi ("Petya", "Vasya", "Kolya", "Maxim"); // MAS'ın beyinsel elemanları, 0'dan dizi-1 uzunluğuna toplanır (var i \u003d 0; i<= nameStudents.length-1; i++) { console.log(i+1 + " элемент массива = " + nameStudents[i]); }

Sil operatörü nedirce

Sil operatörü, bir öğeyi bir diziden çıkarmak ve elde edilen diziyi tanımsız olarak atamak için kullanılmaz.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); İsimleri sil; için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizi nesnesinin yöntemleri

Dizi nesnesi, dizi öğeleri ile çalışmak için aşağıdaki yöntemleri içerir: POP (), Push (), Shift (), Unshift (), Dilim (), Splice (), Katıl (), Split (), Geri (), Sıralama ( ).

Dizinin son unsurunu çıkarma - POP

POP yöntemi, dizinin son elemanını çıkarmak için tasarlanmıştır. Bu yöntemin parametresi yoktur. Sonuç olarak, dizinin son (uzak) elemanının değerini döndürür.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); namesplanets.pop (); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizinin sonuna bir eleman ekleyin - İtme

İtme yöntemi, dizinin sonuna bir eleman eklemek için tasarlanmıştır. Bu öğenin değeri, bu yöntemin parametresi olarak gösterilir. Sonuç olarak, push yöntemi, eklenen dizideki öğe sayısını döndürür.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); nameplanets.Push ("jüpiter"); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizinin ilk elemanını çıkarma - vardiya

Vardiya yöntemi, birinci elemanı diziden, yani birinci elemanı çıkarmak için tasarlanmıştır. Endeks içerisine sahip öğe. Dizinin diğer tüm elemanları başlangıcına kaydırılır, yani. İndeksi 1'e düşürürler. Bu yöntem, yürütme sonucu dizinin uzak elemanının değerini döndürür.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); namesplanets.shift (); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizinin başlangıcına bir öğe ekleme - Unshift

Unshift yöntemi, dizinin başlangıcına bir öğe eklemek için tasarlanmıştır. Bu öğenin değeri, bu yöntemin parametresi olarak gösterilir. Sonuç olarak, bu yöntem, eklenen dizideki öğe sayısını döndürür.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); Namesplanets.unshift ("jüpiter"); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Dizinin unsurlarını kopyalama - dilim

Dilim yöntemi, belirtilen dizi öğelerini kopyalamak için tasarlanmıştır. Bu yöntem, kaynak dizisini değiştirmez ve kopyalanan elemanlardan oluşan bir sonuç olarak yeni bir dizi döndürür.

Dilim yöntemi 2 parametreye sahiptir:

  • 1 Parametre (gerekli) - Kopyalama öğelerinin başlamanın gerekli olduğu bir öğe dizini belirlemek için tasarlanmıştır;
  • 2 Parametre (İsteğe bağlı) - Kopyalamak istediğiniz bir öğe dizini belirtmek için tasarlanmıştır. Belirtmezseniz, elemanlar belirtilen dizinin sonuna kopyalanacaktır.
var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); nameplanets \u003d namesplanets.slice (2.3); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Element Ekleme ve / veya Çıkarma - Ekleme

Splice yöntemi, dizi elemanlarının eklenmesi ve (veya) çıkarılmasını sağlayacak şekilde tasarlanmıştır.

1. Splice yöntemi, elemanlarının bir kısmını bir diziden kesmenizi sağlar. Diziden kaldırılacaklar:

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); nameplanets.Splice (2.2); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

2. Ekleme yöntemi ayrıca (2 parametre 0) öğelerin bir diziye (eğer 2 parametre ise) bir diziye eklemenizi sağlar veya aynı anda ekleyin ve silmek (eğer 2 parametre 0) dizi öğeleri.

Bu yöntemin 3 parametresine sahiptir:

  • 1 parametre (gerekli) - öğeleri kesmeye başladığımız bir öğe dizini belirlemek için tasarlanmıştır;
  • 2 Parametre (gerekli) - Kesilmesi gereken öğelerin sayısını belirlemek için tasarlanmıştır;
  • 3 ve sonraki parametreler (isteğe bağlı), bir diziye eleman eklemek için tasarlanmıştır.
var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); nameplanets.Splice (1.1, "Uranüs", "Neptün", "Satürn"); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Satırdaki Dizi Dönüşümü - Katıl

Birleştirme yöntemi diziyi dizgeye dönüştürmek için tasarlanmıştır. Bu yöntem, onları dizeye dönüştürürken dizi öğeleri arasında bir bağlantı dizesi olarak kullanılan bir parametreye sahiptir. Parametre olarak hiçbir şey belirtmezseniz, dizi öğeleri için virgül (",") kullanılacaktır.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); var strplanets \u003d namesplanets.join (); Konsol.log ("satır:" + Strlanets); var strPlanets2 \u003d namesplanets.join ("); Konsol.log ("satır:" + strplanets2);

Dizideki satır dönüşümü - bölünmüş

Bölünmüş yöntemi, ipi bir diziye dönüştürmek için tasarlanmıştır. Bu yöntem, bu satırın bir satır dizisine ayrılacağı temelinde bir dize belirleyebileceğiniz bir parametreye sahiptir.

Var streementcomputers \u003d "sistem bloğu, monitör, klavye, fare, hoparlörler, yazıcı"; var ElementComputers \u003d StrelementComputers.Split (","); Konsol.log ("dizideki öğelerin sayısı:" + elementcomputers.Length); için (var i \u003d 0; ben<= elementComputers.length-1; i++) { console.log(i + " элемент массива = " + elementComputers[i]); }

Dizi öğelerinin tersi sırayla yeniden sıralaması - Ters

Ters metod, dizinin elemanlarını ters sırayla yeniden sıralamak için tasarlanmıştır.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); namesplanets.reverse (); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Sıralama öğeleri dizisi - Sıralama

Sıralama yöntemi, dizinin unsurlarını sıralamak için tasarlanmıştır. Varsayılan olarak, bu yöntem bir diziyi dizeleri olarak sıralar.

Var nameplanets \u003d yeni dizi ("Venüs", "Merkür", "Dünya", "Mars"); namesplanets.sort (); Konsol.log ("dizideki eleman sayısı:" + nameplanets.length); için (var i \u003d 0; ben<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }