JavaScript dizi ve yaratılması.

Biz JavaScript dizi bileşenleri bakacağız bu makalede

.JavaScript programlama için yaratılmış mükemmel odaklı bir betik dili vardır.Aslında, o dil ECMAScript (ECMA-262 standardına) gerçekleştirmektedir.

Nerede JavaScript kullanmak için?Bu konu yazılım uygulamasına yolunu belirlemek amacıyla gömülü dil olarak kullanılmaktadır.Bu tarayıcıda bulunabilir: web sayfalarına etkileşim sağlayan bir betik dili olarak orada kullanılır.Bu ürünün

önemli mimari özellikleri, dinamik ve zayıf yazarak, avtoupravlenie bellek, ilk kategorinin nesnelerdir İdeal programlama fonksiyonları vardır.Gelişme Java benzer, ama programcılar tarafından kullanımı kolay bir dil yaratmak çünkü

Aslında JavaScript, farklı nedenlerle etkiledi.Bu arada, JavaScript dili web geliştiricileri tarafından kullanılan program stilleri bir dizi farklı kılan herhangi bir şirket ya da kuruluşun sahip değildir.

Not JavaScript o - endişe, Oracle Corporation'ın tescilli marka.

bir dizi nedir?

denilen Array veri depoları değerleri sayılı olduğunu yazın.Bu tür her bir değeri dizisinin bir bileşen ve bir bileşeni indeksi olarak adlandırılan edildiği sayısı olarak ifade edilir.JavaScript türlenmemiş dizi.Bu dizinin detayları tamamen farklı stilleri var, aynı diziye ait çeşitli öğeleri ile her tip, sahip anlamına gelir.

ilavesi, JavaScript dizi dinamik olduğunu ve sabit bir boyut ilan etmeye gerek olmadığı söyleniyor.Herhangi bir zamanda yeni parçalar ekledikten sonra.

İmalat dizi

oldukça zor bir dizi oluşturmak için, dil JavaScript kullanma.Bu iki yöntem vardır.İlk bir edebi kullanarak bir dizi üretimini kapsar - öğelerin listesini yerleştirildiği içinde köşeli parantez, bir virgülle ayrılmıştır.

  • var boş = [];// Boş bir dizi;
  • numers = var [4, 1, 2, 5];// Beş dijital bileşenlerle dizisi;
  • var fark = [1,5, yanlış, «metin"];// Farklı türde üç unsur ile dizi.

Tipik olarak, hiçbir değer basit ihtiyacı (ve satır numarası) vardır.Aynı zamanda, herhangi bir örnekte diğer ifadeler, konu sabitleri diğer işlevler ve diziler olabilir.

tasarımcısı bir dizi oluşturmak için ikinci yolu Array çağırmaktır ().Argüman vermeden

  • Arama tasarımcı: Ona üç yöntem vardır Davet var b - new Array ().Bu boş bir dizi eşdeğer literal boş [] oluşturulmasını öngörmektedir.
  • Designer n bileşenleri dizinin değerini gösterir açıkça etti: var b = new Array (1, 3, 5, 8, "bir çizgi», true).Bu durumda, tasarımcı yeni dizinin bileşenlerine dönüştürülür argümanların bir listesini sundu.Argümanlar dizi yazılır belirtilen konumdur.Daha sonra değerleri atamak için
  • Kapsam Belirleme.Bu parantez içindeki sayılar tespit dizisi yapıldığını belirterek: var b = new Array (5).Bu tespit yöntemi örneğin tartışma sürecinde bir değer verilerek olasılığı ile (tanımlanmamış olarak listelenen her biri) bileşenlerinin gerekli sayıda bir dizi ayırma içerir.Bu form genellikle uzunluğu önceden bilinen Javascript dizi önceden tahsis etmek için kullanılır.

yazma, okuma ve ekleme parçaları dizisi

dizinin bileşenlerini ulaşmak size [] operatörünü kullanabilirsiniz.Bu arada, JavaScript tüm bileşenleri, numaralı, sıfır ile başlayan.Gerekli elemanları elde etmek için, bunun sayısı parantez içinde gösterilir.Bir kural olarak, ürün değiştirilebilir.JavaScript diziye eklemek için A, yeni bir değer atamak gerekir.

JavaScript dizisindeki herhangi bir herhangi bir sayıda öğe saklayabilir dikkat edilmelidir.

of

Uzunluğu yüzden neyi JavaScript biliyoruz.Genel olarak dizinin uzunluğu ilginç bir olgudur.Bize daha ayrıntılı olarak ele alalım.Tüm aralıklar tasarımcı Array () tarafından tasarlanan ve elemanların sayısı korunur hatırlıyor belirli bir özellik uzunluğa sahip bir edebi dizi sayesinde tespit edilir.Array (tanımsız ile gösterilir) ayrıntıları belirsiz olabilir beri, daha doğru bir ifade bu yüzden sesler: Kalite uzunluğu en fazla sayıda (index) bileşeni dizisi birden daima büyüktür.Kalite uzunluğu yeni parçaların bir dizi olayda doğru konukları, otomatik olarak ayarlanır.

dizinin son bileşeni geldi, siz özelliğini uzunluğunu kullanabilirsiniz.

son öğe bir dizin dizinin boyutu birden azdır vardır.Her zaman sayma sonra sıfırdan başlamak.Ah, bu JavaScript!Dizinin uzunluğu öğelerin tam sayısına bağlıdır.V.length - Çok sık, length özelliği döngüsünde parçaların dizisi üzerinden yineleme için kullanılan 1.

Göğüs parçaları dizisi

: onlar ne kadar olması gerektiğini bilmiyorum, ama dizinin son elemanına açmak gerekirse, bu nedenle, kayıt uygulamak gerekir

  • var meyve = [«Çilek", "şeftali", "elma", "muz"];Için
  • (var I = 0; i & lt; fruits.lenght; i ++);
  • document.write (meyve [i] + «...»).Bu örnekte

, bu bileşenlerin sürekli yerleştirilir ve sıfır indeksi sahibi ilk bölümünde, başlamak anlaşılmaktadır.Değilse, dizinin her öğesi çağırmadan önce tanımlanmış olup olmadığını, kontrol edilmelidir.

döngüsü bazen bileşenleri başlatmak için kullanılır.Eklemek için bir dize dizisi JavaScript dilini kullanarak nasıl

Yakınlaştırma ve kesme dizisi

acaba?Dizilerle çalışma sürecinde, uzunluğu uzunluğu otomatik olarak biz bu konuda kendinizi endişelenmenize gerek yüzden kaliteyi artırır.Yaklaşık bir ayrıntıyı hatırlamak gerekir - length özelliği mevcuttur, ancak kayıt için değil salt okunur.Akım büyüklüğü veren değeri kalitesine uzunluğu öznitelik, dizi önceden belirlenmiş bir değere düşürülür.Endeksleri, yaslanma yeni dizi dahil değildir ve onların değerlerinin sonra uzunluğu geri dönmek bile kaybolur Herhangi bileşenler - geri gelmez.Foo.length = 0.

dizinin sonunda şimdiki değerinden daha büyük çalışma uzunluğu kalitesi istenilen boyuta artacak, yeni, tanımlanmamış öğeleri olacaksa: dizi yüzünden temizlemek için

çok kolay.

operatörü silmek

Çıkarma parça dizi undefined bileşen dizisini belirtir, ancak bu durumda varlığını sürdürmektedir.Kalan kısımlar bir koltuk için yerinden edilmiş, böylece JavaScript dizinin bir öğeyi kaldırmak gerekir, dizi tahmin etmek yöntemlerden birini kullanmanız gerekir.Nihai madde ve yöntem splice () - - Bir veya herhangi bir yerde dizide bileşenlerin bir dizi Metodu Array.shift () birinci bileşeni, pop () kaldırır.

Çok Boyutlu Diziler

biz neyi JavaScript hakkında biraz anlıyorum.İki boyutlu diziler - ihtiyaç daha da ele alınması.Sen bileşenleri olarak JavaScript dizileri diğer elementleri içerebilir hatırlıyor musun?Bu özellik, çok-boyutlu diziler üretimi için kullanılır.Dizilerin bir dizi malzemeyi ziyaret için iki kez parantez uygulamak yeterlidir.

Associative biz JavaScript marka ilişkilendirilebilir diziler nasıl kullandıklarını öğrenmek Şimdi

diziler.Biz teoriye içine bakmak gerekir Bunu yapmak için: ilişkilendirilebilir diziler bazen karma tablo denir.Onlar sayesinde, endeksler hattını kullandı.Basit bir nesnenin özelliklerini adına kullanımı andıran bu tür yapıların kullanımı, ancak bu düzenlemede, bir dizi formatında çalışırken.Ilişkilendirilebilir diziler çalıştırmak için hiçbir yolu vardır JavaScript gelince, onlar her zamankinden daha çok daha az sıklıkla kullanılmaktadır.Bu yine veri depolama için yararlı olabilir ve erişmek isteyen parçaların depolama basitleştirmek için dikkat edilmelidir.

çıkış dizisi

Ve şimdi JavaScript çalışma olacak?(Ekranda) iletişim kutusunda dizinin çıkışı ve dizinin bileşenlerinin çıkış değerleri.

tüm bileşenlerin değerleri görüntülemek istediğiniz programın, o zaman talimatlarını uygulamak için uygundur.İlginçtir, değişken sayaç bu indeks bileşen dizisi için kurallar kullanılır.

Temizleme

JavaScript dizi filtrelemek için, boyunu sıfırlamanız gerekir:

  • var myArray = [1, 2, 5, 23];
  • myArray.length = 0

aşağıdaki için JavaScript çerçevesinde net hedef () uygulanmasını gösterir Prototip:

  • net: function () {;
  • this.length = 0;
  • Bu dönüş;
  • }.

ekleme ve kaldırma bileşenleri

Peki, biz daha bu ilginç dili JavaScript keşfetmeye devam ediyor.Dizi elemanı ve çıkarılabilir ve diğer nesneler, geleneksel özellikler ile aynı şekilde eklenebilir.Sayısal özellikler ekleyerek uzunluğu kalitesini değiştirebilirsiniz iken, ve length özelliğinin değiştirilmesi sayısal kalite atılabilir: Ama bazı farklılıklar vardır.Prensip olarak, bu tür dizilerde nitelikleri ayar algoritması:

  • uzunluğu eşit veya i daha az olup olmadığını, dijital i bilinmeyen özelliklerini eklediğinizde, uzunluk i + 1 olarak belirlenir ,.Atanan değer sıfırdan küçükse, o zaman RangeError atar:
  • aşağıdaki gibi uzunlukta kaliteli yapılır değiştirdiğinizde.Yeni uzunluğuna eşit ve daha büyük olan tüm sayısal kalite endeksleri tasfiye.

Genellikle JavaScript dizinin eleman kolaydır kaldırın.Sonuçta, hatta uzunluğu ayarı, bu "ekstra" bileşenleri kaldırmak için gereklidir.Dolayısıyla dizide temizleme seçeneği.Değişken nedense, memnun değil yeni bir boş dizi atanır ve bu akımı yeniden gerekiyorsa, kalite sıfır uzunlukta bir değer atamak için yeterlidir.

yöntemleri, vardiya, pop unshift ve dizinin bileşenleri elle değiştirilir olmasına rağmen

itmek, pek bu yöntemleri yerleşik uygulamak için tavsiye ediyoruz.Bu nüans doğru değeri kalitesi ve dizi geçer uzunluğu olmaması garanti olduğunu.Bu arada, doğru uzunlukta kalite bileşenlerinin sayısını maç olacak.

itme yöntemi ayrıntıları geçirilen dizinin sonuna doğru hareket eder.Yöntem pop nihai bileşene geri veren ve onu kaldırır.Diğer tarayıcılarda, tanımlanmamış dönebilirsiniz unshift sekizinci sürümü altında genellikle Internet Explorer'da

- uzunluğunun yeni değer.Yani unshift dönüş değeri umut daha iyi değil.

dizisi

JavaScript bir dizi silmek istiyorsanız, yapılması gereken ortasında Ekleme ve parçaların ortadan kaldırılması?Bu yöntem, bir imza bağlantı Array.prototype.splice sahip olduğu bilinmektedir.

O endeksi başından başlayarak, dizi deleteCount bileşenlerinden çekildi.İkiden fazla argüman transfer olursa, sonraki tüm argümanlar diziye yerleştirilir yerine tasfiye edilir.Başlangıç ​​eksi ise, Dizin çekilme uzunluğuna eşit olacak + başlayacaktır devam etmek.Elemanlı bir dizi uzaktan geliyor döndürür.

Aslında, bu yöntem ek yeri ile, bileşenler dizinin ortadan kaldırılabilir ya da dizi içinde herhangi bir yerde, herhangi bir sayıda ilave edin.Eğer endeks bir bileşeni kaldırmak gerekiyorsa basit durumda

, ben, ben ve prensip 1.

, ekleme yöntemiyle İkinci seçenek zorunlu değildir parametrelerle dizi ekleme yöntemi, ancak farklı her tarayıcı bir argüman davranışını istemek zorunda.

Örneğin, Firefox, Opera son varyasyonları, Safari ve Chrome tüm öğeleri dizinin sonundan önce geri çekilecektir.IE

herhangi bir bileşen tasfiye olmaz.İlk varyasyon Opera davranışını tahmin etmek imkansızdır - 1. Bu nedenle, her zaman yöntemin en az iki bileşen olarak geçmelidir - index başlaması ile birlikte tek parça silinecektir.Daha önce belirtildiği gibi

Keys

Tabii, öğrenme JavaScript, ilişkisel diziler, aynı zamanda göz ardı etmemelidir.(Anahtar) ARA -

: Bu "(key, value)" şeklinde çiftleri kaydetmek ve destek operasyonlarının bir çift ekleyin yanı sıra silmek ve anahtar çiftleri için arama yapmanızı sağlayan bir bilgi soyut tür (veri deposuna arayüzü) 'dir.

- INSERT (değer, anahtarı).

- KALDIR (tuş).

Bu ilişkisel dizi olarak yapamaz aynı anahtarla iki çift kaydetmek için olduğuna inanılmaktadır.Anahtar k ile ilişkili k + vv denilen değerin bir çift olarak.Bu tür diziler, çeşitli uygulamalarında Yukarıdaki işlemleri Semantik ve isimler farklı olabilir.Böylece

, BUL (anahtarın) etkisi, belirli bir anahtar ile ilişkili değer eksik olduğu anlamına gelir, belirli bir anahtar ya da özel bir amacı undef ile ilişkili değer geri gönderir.İki diğer eylemler (başarıyla bu işlemi idam verileri hariç) hiçbir şey dönmez.

Genellikle endeksleri tamsayılar için ve diğer tip değerlerin sadece uygulanabilir olarak, burada basit bir dizi olarak kabul bir ilişkisel dizidir arayüzü, bakış açısıyla - örneğin, çizgiler.

yolu, bu tür diziler için destek PHP, Perl, Ruby, Python, Tcl, JavaScript, ve diğerleri gibi birçok yorumlanır üst düzey programlama dilleri vardır.Ilişkilendirilebilir dizilerle çalışmak için hiçbir yerleşik araçlara sahip diller için, kütüphanelerin şeklinde uygulamalarının çok sayıda yarattı.Bir ilişkisel dizinin

örneği telefon rehberinde olarak hizmet verebilir.F "bir dizi, bu düzenlemede, bir değerIO + e ", ve anahtar - telefon numarası.Bir telefon numarası, bir usta, ancak bir kişi birkaç oda sahibi olabilir.Bütün çiftleri kaydetmek için «gitmek» -

  • HER:

    İlişkili uzantısı

    genişleme en ünlü şunlardır unutulmamalıdır.

  • SİL - tüm girişleri silmek için.
  • MİN - en tuşuyla bir çift bulmak.
  • MAX - en önemli olan çifti bulmak.Eğer tuşlara gereken son iki durumda

karşılaştırma etkilerini gösterdi.Ilişkisel diziler

ve

uygulamaları ilişkisel dizi birçok farklı uygulamaları vardır.En sık rastlanan bir uygulama olan bileşenler dumanlar (değer anahtarı) olan, basit bir dizi dayalı olabilir.Arama eylemleri dizinin bileşenlerine sipariş edilebilir hızlandırmak ve bir ikili arama kullanarak anahtar bulgu uygulamak.Ama sen "push" taze bir rekor paketi boş bir hücreye ortaya çıkmıştır dizinin bileşenleri ihtiyacınız olacaktır, yeni bir çift eklemek gerekir süreyi artıracaktır.

en çeşitli arama ağaçları dayalı uygulama da bilinir.Örneğin, C ++ harita kabın tipik bir okuma odası STL siyah ve maun temelinde gerçekleştirilmektedir.Yakut, Tcl tarzı, Python karma tablonun bir tür kullanılır.Diğer uygulama da vardır.Genel olarak

, her uygulama kendi avantajları ve dezavantajları vardır.Her üç operasyon ortalama yerine getirildiği önemlidir ve yaklaşık nüans kötü döneminde (log n), n burada - Geçerli numara par kurtarmak için.(Siyah ve kırmızı ağaçlar dahil) uyumlu bir arama ağaçları için bu koşulu sağlanmaktadır.

bilinen bu arama ağacında dayalı eylemler daha iyidir ortalama süre O (1) olarak tanımlanan karma tablolar dayalı uygulamalar.INSERT deyim süresi kötü durumda O (n) olarak adlandırılır: Tabii ki, bu belli operasyonların yüksek hızlı yürütme garanti etmez.INSERT işlemi görev oranının en yüksek noktaya ulaştığı uzun süre yapılır ve karma endeksi tablosu yeniden kurmak için ihtiyaç vardır.

yolu, bu ifadeler bu temelde o hızlı ek eylem MAX, MIN ve kastetmek algoritması azalan veya artan anahtarları sırasına göre tüm çiftleri kaydetmek gerçekleştirmek için imkansız olduğunu kötü karma.