JavaScript-array dan penciptaan.

Pada artikel ini kita akan melihat JavaScript-array, komponen-komponennya.JavaScript adalah bahasa scripting sempurna berorientasi, diciptakan untuk pemrograman.Bahkan, ia menyadari bahasa (standar ECMA-262) ECMAScript.

Dimana untuk menggunakan JavaScript?Hal ini digunakan sebagai bahasa tertanam dalam rangka untuk menentukan jalur untuk aplikasi perangkat lunak yang.Hal ini dapat ditemukan dalam browser: digunakan di sana sebagai bahasa scripting yang memberikan interaktivitas ke halaman web.

fitur arsitektur penting dari produk ini dinamis dan lemah mengetik, memori avtoupravlenie, fungsi pemrograman yang ideal, yang merupakan obyek dari kategori pertama.

Sebenarnya, dalam JavaScript terpengaruh alasan yang berbeda, karena pembangunan akan membuat bahasa yang sama ke Jawa, tetapi mudah digunakan oleh programmer.By the way, bahasa JavaScript tidak memiliki perusahaan atau organisasi yang membuatnya berbeda dari sejumlah gaya program yang digunakan oleh pengembang web.

Perhatikan bahwa JavaScript - merek dagang terdaftar dari keprihatinan Oracle Corporation.

Apa array?

data yang disebut Array ketik yang menyimpan nilai-nilai bernomor.Setiap nilai tersebut disebut sebagai komponen dari array, dan jumlah yang komponen disebut indeks.Array JavaScript-untyped.Ini berarti bahwa rincian dari array dapat memiliki apa pun jenis, dengan berbagai item milik array yang sama, memiliki gaya yang sama sekali berbeda.Selain

, JavaScript-array dinamis, dan dikatakan bahwa ukuran yang tetap tidak ada kebutuhan untuk menyatakan.Setelah menambahkan bagian baru setiap saat.

Manufacturing berbagai

Menggunakan bahasa JavaScript, untuk membuat sebuah array cukup sulit.Ada dua metode untuk ini.Yang pertama melibatkan produksi sebuah array menggunakan literal - kurung persegi, di dalam yang ditempatkan daftar item, dibagi dengan koma.

  • var kosong = [];// Array kosong;
  • numers = var [4, 1, 2, 5];// Array dengan lima komponen digital;
  • var diff = [1,5, false, «teks"];// Array dengan tiga elemen dari berbagai jenis.

Biasanya, tidak ada persyaratan bahwa nilai-nilai yang sederhana (dan nomor baris).Ini juga mungkin setiap ekspresi lain, misalnya, literal subjek fungsi dan array lainnya.

cara kedua untuk membuat sebuah array dari desainer adalah untuk memanggil Array ().Invite dia tiga metode:

  • desainer Memanggil tanpa argumen: var b - Array baru ().Ini membayangkan penciptaan array setara kosong literal kosong [].
  • Designer telah jelas menunjukkan nilai komponen n Array: var b = new Array (1, 3, 5, 8, "garis», true).Dalam hal ini, desainer disajikan daftar argumen, yang diubah menjadi komponen dari array baru.Argumen ditulis ke array adalah lokasi di mana ditunjukkan.
  • Penjajakan untuk nanti menetapkan nilai-nilai.Hal ini dilakukan dengan menentukan array deteksi nomor dalam tanda kurung: var b = new Array (5).Metode ini deteksi melibatkan alokasi array jumlah yang diperlukan komponen (masing-masing terdaftar sebagai terdefinisi) dengan kemungkinan menempatkan nilai-nilai dalam proses diskusi.Bentuk ini biasanya digunakan untuk pra-mengalokasikan Javascript-array yang panjangnya dikenal di muka.

menulis, membaca dan menambahkan bagian array yang

mencapai komponen dari array, Anda dapat menggunakan [] operator.Kebetulan, semua komponen dalam JavaScript, dimulai dengan nol, nomor.Untuk mendapatkan elemen yang diperlukan, jumlah yang ditunjukkan dalam tanda kurung.Sebagai aturan, item dapat diubah.Sebuah JavaScript untuk menambah array, Anda harus menetapkan nilai baru.

harus dicatat bahwa dalam array JavaScript dapat menyimpan sejumlah elemen apapun.

Panjang

Jadi kita tahu apa JavaScript.Panjang array secara umum adalah sebuah fenomena menarik.Mari kita mempertimbangkan secara lebih rinci.Semua rentang dirancang oleh desainer Array (), dan diidentifikasi berkat array literal memiliki panjang properti tertentu, yang mengingatkan jumlah elemen yang diawetkan.Sejak array mungkin tidak pasti rincian (dilambangkan dengan terdefinisi), ekspresi yang lebih akurat terdengar begitu: panjang Kualitas selalu lebih besar oleh salah satu dari yang terbesar jumlah (index) komponen array.Panjang kualitas diatur secara otomatis, tinggal akurat pada terjadinya dalam berbagai bagian-bagian baru.

datang ke komponen akhir dari array, Anda dapat menggunakan fitur panjang.

item terakhir memiliki indeks adalah salah satu kurang dari ukuran array.Setelah menghitung selalu memulai dari awal.Oh, JavaScript ini!Panjang array itu tergantung pada jumlah yang tepat dari item.Oleh karena itu, jika Anda tidak tahu berapa banyak mereka harus, tetapi Anda perlu beralih ke elemen terakhir dari array, Anda perlu menerapkan catatan: v.length - 1.

Payudara bagian array yang

Sangat sering, properti panjang digunakan untuk iterate atas array bagian dalam siklus:

  • buah var = [«Strawberry", "peach", "apel", "pisang"];
  • for (var I = 0; i & lt; fruits.lenght; i ++);
  • document.write (buah-buahan [i] + «...»).

Dalam contoh ini, tampak bahwa komponen ditempatkan terus menerus dan mulai dengan bagian pertama, yang memiliki indeks nol.Jika tidak, sebelum memanggil setiap elemen array harus diperiksa, apakah itu didefinisikan.Siklus

juga kadang-kadang digunakan untuk menginisialisasi komponen.

Zoom dan pemotongan berbagai

bertanya-tanya bagaimana menggunakan bahasa JavaScript dalam array string untuk menambahkan?Dalam proses bekerja dengan array, panjang panjang otomatis meningkatkan kualitas, itulah sebabnya mengapa kita perlu khawatir tentang hal itu sendiri.Hal ini diperlukan untuk diingat tentang satu detail - properti panjang tidak read-only tersedia, tetapi untuk catatan.Jika atribut panjang untuk kualitas nilai yang memberikan ukuran saat ini, maka array dikurangi dengan nilai yang telah ditentukan.Komponen yang tidak termasuk dalam rentang baru indeks, berbaring, dan nilai-nilai mereka yang hilang, bahkan jika kemudian kembali kembali panjang - tidak dikembalikan.

sangat mudah dibersihkan karena array: foo.length = 0

Jika kualitas panjang run lebih besar dari nilai saat ini pada akhir array akan baru, item tak dikenal yang akan meningkatkan ke ukuran yang diinginkan.

Menghapus bagian array yang

menghapus Operator menentukan array komponen untuk undefined, tetapi terus ada dalam kasus ini.Jika Anda harus menghapus item dari JavaScript Array sehingga bagian-bagian yang tersisa mengungsi untuk kursi, Anda harus menggunakan salah satu metode untuk memprediksi array.Metode Array.shift () menghapus komponen pertama, pop () - bahan akhir, dan sambatan metode () - satu atau berbagai komponen mana saja dalam array.

Multidimensional Array

pikir kita memahami sedikit tentang apa JavaScript.Dua dimensi array - yang perlu ditangani lebih lanjut.Anda ingat bahwa JavaScript array sebagai komponen dapat mengandung unsur-unsur lainnya?Fitur ini digunakan untuk produksi array multi-dimensi.Untuk mengunjungi bahan dalam array array cukup untuk menerapkan kurung dua kali.

asosiatif array

Sekarang, kita belajar bagaimana JavaScript merek dagang menggunakan array asosiatif.Untuk melakukan hal ini kita perlu untuk melihat ke dalam teori: array asosiatif kadang-kadang disebut tabel hash.Berkat mereka, indeks digunakan line.Penggunaan struktur tersebut mengingatkan penggunaan nama properti dari objek sederhana, tetapi dalam perwujudan ini, ketika bekerja dalam format array.Seperti dalam JavaScript tidak ada cara untuk mengoperasikan array asosiatif, mereka digunakan lebih jarang dari biasanya.Perlu dicatat bahwa mereka masih dapat berguna untuk penyimpanan data dan menyederhanakan penyimpanan bagian yang Anda ingin mengakses.

keluaran berbagai

Dan sekarang kita akan belajar di JavaScript?Output dari array ke kotak dialog (di layar), dan nilai-nilai output dari komponen dari array.

Jika program Anda ingin menampilkan nilai dari semua komponen, maka akan lebih mudah untuk menerapkan petunjuk untuk.Menariknya, variabel-counter digunakan dalam aturan untuk komponen indeks ini array.

Pembersihan

Untuk menyaring array JavaScript, Anda perlu mengatur ulang panjang:

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

berikut menunjukkan pelaksanaan tujuan yang jelas (), dalam JavaScript-kerangka, Prototype:

  • jelas: function () {;
  • this.length = 0;
  • kembali ini;
  • }.

Menambah dan menghapus komponen

Yah, kita terus lebih mengeksplorasi bahasa ini menarik JavaScript.Elemen array dan dapat dihapus dan ditambahkan dalam cara yang sama seperti sifat konvensional benda lainnya.Tetapi ada beberapa perbedaan: sambil menambahkan sifat numerik dapat mengubah kualitas panjang, dan modifikasi dari properti panjang dapat dibuang kualitas numerik.Pada prinsipnya, algoritma pengaturan kualitas di array tersebut adalah:

  • Ketika Anda menambahkan sifat yang tidak diketahui i digital, jika panjang sama dengan atau kurang dari i, panjang bertekad untuk menjadi i + 1 ,.
  • Bila Anda mengubah kualitas panjang yang dibuat sebagai berikut: jika nilai yang diberikan kurang dari nol, kemudian melemparkan RangeError.Dilikuidasi semua indeks kualitas numerik yang sama dengan panjang baru, dan lebih besar dari.

Umumnya menghapus unsur JavaScript array mudah.Setelah semua, bahkan pengaturan panjang, perlu untuk menghapus dari "ekstra" komponen.Oleh karena itu opsi pembersihan dalam array.Jika variabel diberikan sebuah array kosong baru untuk beberapa alasan, tidak puas, dan perlu untuk me-reset saat ini, kualitas cukup untuk menetapkan nilai panjang nol.Metode

unshift, pergeseran, pop dan mendorong

Terlepas dari kenyataan bahwa komponen dari array berubah secara manual, banyak merekomendasikan ini untuk menerapkan built-in metode.Ini adalah nuansa ini menjamin nilai yang benar kualitas dan kurangnya panjang dalam melewati array.By the way, dengan panjang yang benar kualitas akan cocok dengan jumlah komponen.

metode dorongan bergerak ke akhir array dilewatkan ke rincian.Metode pop memberikan kembali ke komponen final dan menghapusnya.

Umumnya di Internet Explorer di bawah versi kedelapan unshift dapat kembali undefined, di browser lain - nilai baru panjang.Jadi pada nilai kembali dari unshift yang lebih baik untuk tidak berharap.

Menambah dan penghapusan bagian di tengah-tengah array

Jika Anda ingin menghapus array JavaScript, Anda perlu mengambil?Hal ini diketahui bahwa metode ini memiliki Array.prototype.splice tanda tangan sambatan.

Ia menarik diri dari komponen array yang deleteCount, dimulai dengan indeks awal.Jika Anda ditransfer lebih dari dua argumen, semua argumen berikutnya ditempatkan dalam array bukannya dilikuidasi.Jika awal minus, indeks dari yang untuk melanjutkan penarikan akan sama dengan panjang + mulai.Mengembalikan array elemen berasal dari remote.

Bahkan, dengan menggunakan metode sambatan, komponen dapat dihapus dari tengah array, atau menambahkan sejumlah mana saja dalam array.

Dalam kasus yang paling sederhana, jika Anda perlu untuk menghapus komponen dengan indeks i, harus meminta metode array yang sambatan dengan parameter i dan 1.

Pada prinsipnya, pilihan kedua di metode sambatan tidak wajib, tapi perilaku satu argumen di masing-masing browser yang berbeda.

Misalnya, di Firefox, dalam variasi terakhir Opera, Safari dan di dalam Chrome semua item akan ditarik sebelum akhir array.

di IE tidak akan dilikuidasi komponen apapun.Variasi pertama adalah mustahil untuk memprediksi perilaku Opera - akan dihapus satu bagian dengan indeks awal - 1. Oleh karena itu, Anda harus selalu lulus dalam metode setidaknya dua komponen.

Keys

saja, belajar JavaScript, array asosiatif, seperti yang disebutkan sebelumnya, Anda harus juga tidak melupakan.Ini adalah jenis abstrak informasi (antarmuka untuk menyimpan data), yang memungkinkan Anda untuk menyimpan pasang bentuk "(key, value)" dan menambahkan sepasang operasi dukungan, serta menghapus dan mencari pasangan kunci:

- TEMUKAN (key).

- INSERT (nilai, kunci).

- HAPUS (key).

Hal ini diyakini bahwa dalam array asosiatif dapat menyimpan dua pasang dengan tombol yang sama.Dalam beberapa k + ay nilai disebut terkait dengan k kunci.Semantik dan nama di atas operasi di berbagai implementasi dari array tersebut mungkin berbeda.

demikian, efek FIND (kunci) mengembalikan nilai yang terkait dengan kunci yang diberikan, atau undef objek tertentu, yang berarti bahwa nilai yang terkait dengan kunci yang diberikan hilang.Dua tindakan lain tidak kembali apa-apa (kecuali untuk data yang Anda telah berhasil dijalankan transaksi ini).

Umumnya, dari sudut pandang antarmuka, yang merupakan array asosiatif dianggap sebagai array sederhana, dimana sebagai indeks dapat diterapkan tidak hanya untuk bilangan bulat, dan jenis-jenis nilai - misalnya, garis.

cara, dukungan untuk array seperti memiliki banyak ditafsirkan bahasa pemrograman tingkat tinggi seperti PHP, Perl, Ruby, Python, Tcl, JavaScript, dan lain-lain.Untuk bahasa yang tidak memiliki built-in tools untuk bekerja dengan array asosiatif, menciptakan sejumlah besar implementasi dalam bentuk perpustakaan.

contoh array asosiatif dapat berfungsi sebagai telepon.Dalam perwujudan ini, nilai dari serangkaian "F.IO + e ", dan kunci - nomor telepon.Nomor telepon satu master, tapi satu orang bisa memiliki beberapa kamar.

Associated ekstensi

Perlu dicatat bahwa yang paling terkenal ekspansi meliputi:

  • SETIAP - «pergi» untuk menyimpan semua pasangan.
  • CLEAR - menghapus semua entri.
  • MIN - menemukan sepasang dengan tombol terendah.
  • MAX - menemukan pasangan yang paling penting.

Dalam dua kasus terakhir yang Anda perlu pada tombol menunjukkan efek dari perbandingan.

implementasi dari asosiatif array

Ada banyak implementasi yang berbeda dari array asosiatif.Implementasi yang paling umum mungkin didasarkan pada array sederhana yang komponen adalah asap (key value).Untuk mempercepat tindakan pencarian dapat dipesan pada komponen dari array dan menerapkan temuan kunci dengan menggunakan pencarian biner.Tapi itu akan meningkatkan jumlah waktu yang Anda butuhkan untuk menambah sepasang baru, seperti yang akan perlu untuk "push" komponen dari array yang telah muncul dalam sel kosong untuk berkemas rekor baru.

terkenal pelaksanaan, berdasarkan berbagai pohon pencarian.Misalnya, di ruang baca STL khas C ++ peta wadah diwujudkan atas dasar hitam dan mahoni.Dalam gaya Ruby, Tcl, Python menggunakan jenis tabel hash.Ada juga implementasi lainnya.

Secara umum, setiap pelaksanaan memiliki kelebihan dan kekurangan.Adalah penting bahwa semua tiga operasi yang dipenuhi rata-rata, dan pada periode terburuk nuansa sekitar (log n), dimana n - jumlah saat ini untuk menyelamatkan par.Untuk pohon pencarian bersama (termasuk pohon hitam dan merah), kondisi ini puas.

diketahui bahwa implementasi berdasarkan tabel hash, yang didefinisikan sebagai rata-rata waktu O (1), yang lebih baik daripada tindakan berdasarkan pada pohon pencarian.Tentu saja, ini tidak menjamin eksekusi kecepatan tinggi dari operasi tertentu: durasi pernyataan INSERT disebut sebagai yang terburuk kasus O (n).Proses INSERT dilakukan untuk waktu yang lama ketika rasio kewajiban mencapai titik tertinggi, dan ada kebutuhan untuk merekonstruksi tabel indeks hash.

cara, laporan hash buruk yang atas dasar ini tidak mungkin untuk melakukan tindakan tambahan yang cepat MAX, MIN dan algoritma traversal untuk menyimpan semua pasangan dalam rangka penurunan atau peningkatan kunci.