internet pencereler Android
Genişletmek

JavaScript örneklerini itin. Dizi

Onların İt () Yöntem, dizinin yeni uzunluğuna bir veya daha fazla öğe ekler.

Bu etkileşimli örnek için kaynak, bir GitHub deposunda saklanır. Eğer "interaktif örnekler projesine katkıda bulunmayı seviyorsanız, lütfen https://github.com/mdn/interactive-exampls klonlayın ve bize bir çekme isteği gönderin.

Sözdizimi

Arr .Push (Element1 [, ... [, Elementn]])

Parametreler.

Eleman. N. Dizinin sonuna eklemek için elemanlar (lar).

Geri dönüş değeri.

Örnekler.

Bir diziye eleman ekleme

Aşağıdaki kod, iki element içeren spor dizisini oluşturur, daha sonra iki öğeyi ekler. Toplam değişken, dizinin yeni uzunluğunu içerir.

Sports \u003d ["Futbol", "Beyzbol"] Let total \u003d Sports.Push ("futbol", "yüzme") konsol.log (spor) // ["futbol", "beyzbol", "futbol", "Yüzme "] Konsol.log (toplam) // 4

İki diziyi birleştirmek.

Bu örnek, tüm öğeleri ikinci bir diziden itmek için geçerlidir ().

Yapmak. değil. İkinci dizinin (örneğindeki daha fazla) çok büyükse, bu yöntemi kullanın, çünkü bir işlevin alabileceği maksimum parametre sayısı pratikte sınırlıdır. Daha fazla ayrıntı için Uygula ().

Sebzeler \u003d ["" Öfkeli "," Patates "], daha lezegelerin \u003d [" Kereviz "," Beetroot "] // İkinci diziyi ilke birleştirin // Sebze'ye eşdeğerdir. (" Kereviz "," Beetroot ") Array.Prototype.Push.Acply (Sebzeler, Morevegs) Konsol.log (Sebzeler) // ["Parsnip", "Patates", "Kereviz", "Beetroot"]

Dizi benzeri bir şekilde bir nesneyi kullanmak

Yukarıda belirtildiği gibi, itme kasıtlı olarak geneldir ve bunu benim avantajımıza kullanabiliriz. Array.Prototype.Push, bu örnek gösterdiği gibi bir nesne üzerinde çalışabilir.

Bir nesne koleksiyonunu saklamak için bir dizi oluşturmadığımızı unutmayın. Bunun yerine, koleksiyonu nesnenin kendisinde saklıyoruz ve Array.Prototype'ün çağrısını kullanıyoruz. Yöntemi bir dizi ile uğraştığımızı düşünerek treick etmek için Sadece çalışır, JavaScript'in yürütme bağlamını kurmamızı sağladığımızdan teşekkürler, ancak lütfen.

OBJ \u003d (Uzunluk: 0, Addlem: Function Addlem (Elem) (// obj.length işlevi otomatik olarak artırılır // bir öğe eklendiğinde. .PUSH.CALL (BU, Elem)) // Yapalım Sadece göstermek için bazı boş nesneler. Obj.addelem (()) obj.addelem (()) konsol.log (obj.length) // → 2

OBJ'nin bir dizi olmasa da, yöntemi başarıyla artırdığımız OBJ "ın uzunluğu mülkünü başarıyla artırıyorsak, gerçek bir dizi ile ayrılıyorduk.

Özellikler.

Şartname Durum. Yorum Yap
ECMASCRIPT 3RD Sürümü (ECMA-262) Standart. İlk tanım. JavaScript 1.2'de uygulandı.
ECMASCRIPT 5.1 (ECMA-262)
Standart.
ECMASCRIPT 2015 (6. Baskı, ECMA-262)
Bu şartnamede "Array.Prototype.Push "'un tanımı.
Standart.
ECMASCript Son Taslak (ECMA-262)
Bu şartnamede "Array.Prototype.Push "'un tanımı.
Taslak.

Tarayıcı Uyumluluğu

Bu sayfadaki uyumluluk tablosu yapılandırılmış verilerden oluşturulur. Eğer verilere katkıda bulunmayı seviyorsanız, lütfen https://github.com/mdn/browser-compat-data bölümüne bakın ve bize bir çekme isteği gönderin.

GitHub'daki Uyumluluk Verilerini Güncelleme

Masaüstü.MobilSunucu
Krom.Kenar.Firefox.Internet Explorer.Opera.Safari.Android WebView.Android için kromAndroid için FirefoxAndroid için OperaİOS'da Safari.Samsung InternetNode.js.
İt.Chrome Tam Destek 1Kenar tam desteği 12Firefox Tam Destek 1IE Tam Destek 5.5Opera tam destek EvetSafari Tam Destek 1WebView Android Tam Destek EvetKrom Android Tam Destek 18Firefox android tam destek 4Opera android tam destek EvetSafari iOS Tam Destek 1Samsung Internet Android Tam Destek Evetnodejs tam destek evet

Yöntem İt () Dizinin sonuna bir veya daha fazla öğe ekler ve yeni bir dizi uzunluğu döndürür.

Sözdizimi

Arr .Push (Element1 [, ... [, Elementn]])

parametreler

Eleman. N. Dizinin sonuna eklenecek öğeler.

Geri dönüş değeri

var sebzeler \u003d ["parsnip", "patates"]; var morevegs \u003d ["Kereviz", "Beetroot"]; // İkinci diziyi, öncelikle birleştirin // Sebze'ye eşdeğerdir. ("Kereviz", "Beetroot"); Array.prototype.push.Apply (sebzeler, morvegs); Konsol.log (sebzeler); // ["Parsnip", "Patates", "Kereviz", "Beetroot"]

Bir dizinin biçiminde bir nesneyi kullanma

Yukarıda belirtildiği gibi, itme kasten geneldir ve bizim çıkarlarımızda kullanabiliriz. Array.Prototype.Push, bu örneği gösterdiği gibi sadece mükemmel nesne ile çalışabilir. Lütfen dikkat: Nesnelerin koleksiyonunu saklamak için bir dizi oluşturmazız. Bunun yerine, koleksiyonu nesnenin kendisinde saklıyoruz ve ARRAY.Prototype.Push'u kullanıyoruz. , ancak lütfen.

Var obj \u003d (Uzunluk: 0, Addelem: fonksiyon addlem (Elem) (// obj.length otomatik olarak artırılır // bir öğe eklendiğinde. .Push.call (bu, Elem);)); // "sadece göstermek için bazı boş nesneler ekleyelim. Obj.addelem (()); obj.addelem (()); konsol.log (obj.length); // → 2

Obj bir dizi olmasa da, push yöntemi, gerçek diziyle ilgilenirmiş gibi, OBJ nesnesinin değerini başarıyla arttırdığını unutmayın.

Özellik

Tarayıcı ile uyumluluk

Özellik Web Görünümü android Android için krom Kenar mobil Android için Firefox Android İşletim Sistemi İOS Safari. Samsung Online Mağazası

Yığın, değişken değerlerdeki bu değişiklik tarihine atfedilmenizi sağlar. Veri tanımı ve algoritmalar programlamanın altını çizer. Yığın, fonksiyonlar arasında, özyineleme ve parametrelere referanslar arasındaki kontrollerin iletilmesi için temeldir. Bir itme () ve pop () dizi yöntemleriyle sözdizimi ve javascript semantiği, anlamı manipüle etmeyi ve zaman faktörünü dikkate almayı mümkün kılar. Tarayıcı dilinin tuhaflığı ve mantığı aksi takdirde zaman faktörü olasılığına bakabilir.

Veri dizisi ve oluşumunun mantığı

Sadece değişkeni tanımlayın. Bir dizi değişken oluşturmak kolaydır. Verileri kullanan bir algoritma, sorunun statik ve basit bir çözümdür. Klasik veri çalışması:

  • (Oluştur) değişkenini tanımlayın;
  • bir değer atayın;
  • değeri değiştirin;
  • değişkeni sil.

Push () ve pop () işlevleri değişkenlerin özünü değiştirmenize ve bunları kullanmanıza izin verir. Yığın fikri, "doğum" yanıtı, ancak JS'nin bir tarayıcı dili olarak özelliği ve modern programlama konsepti, zaman faktörünü dikkate almayı ve bu dinamikleri vermeyi mümkün kılar.

Değer işlevi ") - Dizinin sonuna bir şeyler ekleyin. İşlev, dizinin son elemanını çıkarmaktır. Push / Pop bağlamındaki işaretçi, son sınıfı ve sonuncuyu çıkarırken eklenen öğeye taşınır. eleman operasyonun sonucudur.

Plakaların yığını - Javascript'teki yığının geleneksel açıklaması - yeni bir anlam kazanır. Her zaman değişken olsun - bu bir dizidir. Aslında bir dizi değişkenlerin bir kombinasyonudur, ancak değişkeni bir dizi olarak göz önünde bulundurun, aksi takdirde değerlerdeki değişikliklerin dinamiklerine bakabilirsiniz.

Değerlerle hareket

Yığının özü - son geldi, önce gitti. Değeri bu siparişin dışındaki kaldıramazsınız. Kesinlikle bu kuralı gözlemleyerek, tüm dizinin değerleri olarak göz önüne alındığında, bu değişkenin değerlerdeki değişikliklerin dinamiklerini zaman içinde elde edebilirsiniz.

Bu örnekte, JS Array.Push (...) değerleri eklemek, bir eylem dizisidir, JS dizisi pop () değerlerinin çıkarılması başka bir dizidir. Her iki varyant da birbiriyle ilişkilidir. Bu, aktif elemanın değerini sadece zamana göre değil, aynı zamanda değişimin mantığı ile değiştirdiği anlamına gelir.

Özyineleme ve Dinamikler

İşlev kendisine neden olabilir ve amacını güvenle yerine getirebilirse - bu tam işlevselliktir. Basit bir örnek bir tablodur. Masada başka tablolar olabilir. Ve her masa çizgiler, sütunlar ve hücrelerdir. Her hücre bir masa içerebilir. Üstün veya bir sütundaki birden fazla hücre, tablonun bulunabileceği bir hücreye birleştirilebilir. Hücrede bulunan tabloda, iki ve daha fazla tablolara sahip bir hücre olabilir.

Klasik tarzı programlama tarzını uygulamak neredeyse imkansızdır, ancak özyinelemeli - ilköğretimde. Masa ile iş algoritmasının işlevselliği, herhangi bir hücre aracı içinde kendinizi gerçekleştirmenize izin verirse, JS dizisi itin. Javascript'te, bu "odak" özel bir anlamı var. Tablolar özel uygulamalardır. Sayfa Ağacı (DOM) sayfadaki bir iştir.

DOM elemanlarında (sayfa etiketleri) işleyicileri asmak. Böyle bir işleyici bir kez tetiklendiğinde bir seçenek, kendisine birçok kez neden olabileceği zaman tamamen farklı bir seçenek. Tüm işleyiciler bağlamında tüm sayfa öğeleri, zaman hoparlörü elde edilir.

PUSH / POP ve özyineleme, sayfanın sayfasının sayfasının mantığı hakkında biraz farklı bir fikirdir: her şey mevcut durumda gerektiği gibi değişir ve bir ziyaretçi eylemlerinin tutarlı bir çalışması şeklinde önceden programlanmamıştı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. Burada dizilerle tanışmaya devam edeceğiz. Uzunluk özelliği hakkında konuşalım - nasıl öğrenilir: Kaç öğe bir dizi içerir?

Öğretmek Öğeleri ekle Dizinin başlangıcı ve sonu sırasıyla açık ve push yöntemleridir.

Vardiya ve POP yöntemlerini kullanmanın yanı sıra elemanları kaldır Ayrıca dizinin başlangıcından ve sonundan!

Özünde, dizi belirli sayıda farklı unsurdan oluşan belirli bir nesnedir.

Uzunluk özelliği, dizideki elemanların sayısını bulmasını sağlar.

Örneğin, son tema ile bize tanıdık haftanın yedi günü bir dizi alalım.

Ekrandaki dizinin öğelerinin sayısını öğrenelim ve getirelim. Bunu yapmak için, aşağıdaki örnekte gördüğünüz gibi, bir değişken oluşturun, değeri, bize, sırayla, uzunluk özelliği ile gösterilir.

array.Length - Böyle bir kod bize dizinin unsurlarının numarasını verir. (Nerede dizi. - dizinin adı) .

Böylece, sayım değişkeninde, dizi elemanlarının sayısına eşit bir sayı yerleştirdik.

Uzunluk özelliği nasıl çalışır?

İtme yöntemi - dizinin sonuna bir eleman ekler.

Öğe ekleme yöntemleriyle çalışmaya başlamak için herhangi bir dizi oluşturmanız gerekir.

Aşağıda bir dizi arkadaş oldum - arkadaşlar.

Şimdi bir öğeyi eklememiz gerekir, yani dizinin sonundaki başka bir isim.

Bunun için bir itme yöntemi var - dizinin sonuna bir eleman ekler. Buna benziyor:

Nastya, Grigory, Vyacheslav, Alexey, Yakov

Yakov

İtme yöntemini yukarıdaki örnekte kontrol etmek için, uzunluk özelliğini kullanarak arkadaş dizilerinin öğelerinin sayısını getirdik - 5 idi. Sonra tüm arkadaşlar dizisini de getirdiler dizinin son elemanı .

Artık elemanın dizinin sonuna eklendiğinden emin olabilirsiniz!

Unshift yöntemi - bir öğe ekler masifin tepesine.

Burada arkadaş dizisine geri dönüyoruz.

Şimdi dizinin başlangıcına bir öğe eklememiz gerekir. Bunu yapmak için, unshift bir yöntem var.

Dizideki öğelerin sayısı 5

Boris, Nastya, Grigory, Vyacheslav, Alexey

Boris.

Unshift yönteminin çalışmasını kontrol etmek için, uzunluk özelliğini kullanarak arkadaş dizilerinin elemanlarının sayısını türettik, ardından tüm ariends dizisini de getirdik. dizinin ilk elemanı (Size, dizinin unsurlarının numaralandırılmasının 0 ile başladığını hatırlatırız) .

Şimdi, gördüğünüz gibi, öğe dizinin başlangıcına eklendi!

POP yöntemi - kaldırır masiften son unsur.

Ve yine "arkadaş" dizisi ile çalışıyoruz.

POP yöntemini kullanarak - son öğeyi diziden çıkarın:

Nastya, Grigory, Vyacheslav

Vyacheslav

POP yönteminin netliği için, uzunluk özelliğini kullanarak dizi öğelerinin sayısını tekrar çıkarıyoruz, sonra tüm arkadaşlar dizileri görüntülendi - uzak bir öğe olmadan.

Ve ayrıca türetilmiş son element Yeni alınan masif . Son öğeyi uzunluk özelliğini kullanarak görüntülemek için, dizideki (3) içindeki toplam öğe sayısını (3) aldık ve 1'den tespit ettik. Böylece, dizinin son öğesini 2. numaraya getirdik, ancak bu üçüncü Eleman, dizideki numaralandırma 0 ile başladığından beri !!!

Vardiya Yöntemi - Kaldırır dizinin ilk elemanı.

Önce, daha önce olduğu gibi, "Arkadaşlar" dizisi

Vardiya yöntemini kullanma - diziden ilk elemanı çıkarın:

Dizideki öğelerin sayısı 3'tür.

Gregory, Vyacheslav, Alexey

Gıcırdamak

Son olarak, vardiya yönteminin çalışmalarını doğrulamak için, uzunluk özelliğini kullanarak yeni alınan dizinin elemanlarının sayısını getirdik, daha sonra uzaktaki birinci eleman olmadan tüm arkadaş dizisini getirdik.

Ve ayrıca türetilmiş dizinin ilk elemanı. Dizideki numaralandırma 0 ile başlar !!!

Sana ve kendin için hatırlatırım İlginç an Bu makale!

Dizinin son unsurunun numarasını / indeksini bulmak için, öğelerinin arasından ihtiyacınız var. (yani) Çıkarın !!!

Bu konuda zaten bu konuda çalıştık.

Bu anın resmi için iyi bir seçenek, haftanın yedi günü bir dizi olarak kabul ettiğimiz konu noktasından bir örneğin devamı olacaktır.

Gün dizideki öğelerin sayısı 7

Dizinin son unsurunun sayısı 6 numara

Böylece, bu örnekte, bir kez daha yaptığım gerçeğini belirtti. dizide numaralandırma 0 ile başlar. Ve bu örnekte görülebileceği gibi, dizinin 7. elemanının sayısı 6'dır.

Bu konunun sonunda, ödevinizi de yapacağım. Ve yine kendini çözmeye çalış.

Ev ödevi çıkarmak için ... ve JavaScript'teki bir diziye öğeleri eklemek aşağıdaki içeriğe sahiptir:

1. Meyveli bir dizi oluşturun: turuncu, muz, armut.
2. Ekranda test edin, şu anda dizide ne kadar meyveniz var.
3. Önceki derste incelenen yöntemleri kullanarak, dizinin sonuna iki meyve ekleyin - Apple ve Ananas ve Masif'in başlangıcına - Greyfurt.
4. Şu anda dizi meyve olduğunuz anda ekranınız.
5. Önceki derste incelenen yöntemleri kullanarak, son ve ilk öğeyi Masif'ten kaldırın.
6. Şu anda dizideki meyveleriniz olduğun zamanda göster.

Turuncu, muz, armut

Şimdi Sepetimde 3 Meyve

Greyfurt, turuncu, muz, armut, elma, ananas

Şimdi sepetim 6 meyve

Turuncu, muz, armut, elma

Şimdi sepetim 4 meyve