KomputerProgramming

JavaScript-Asép Sunandar Sunarya na ciptaan na. Sakabéh ngeunaan arrays JavaScript

Dina artikel ieu kami baris kasampak di JavaScript-Asép Sunandar Sunarya, komponen na. JavaScript mangrupakeun basa skenario-berorientasi sampurna dirancang pikeun programming. Malah, implements bahasa ECMAScript (baku ECMA-262).

Tina JavaScript? Hal ieu dipaké salaku hiji basa study dina urutan pikeun nangtukeun jalan tina program kana aplikasi matuh. Ieu bisa kapanggih dina browser anu: biasa digunakeun aya salaku basa scripting nu mere kaca web interaktif.

Fitur arsitéktur utama produk ieu téh dinamis tur lemah ketikan, memori idéal fungsi programming avtoupravlenie nu objék tina ngurangan munggaran.

Sabenerna, di JavaScript dipangaruhan alesan béda, sabab ngembangkeun éta bakal nyieun basa sarupa Java, tapi gampang ngagunakeun ku programer. Ku jalan kitu, bahasa JavaScript teu diaku wae parusahaan atawa organisasi anu ngajadikeun eta béda ti Jumlah gaya programming dipaké ku pamekar wéb.

Ieu kudu dicatet yén JavaScript - mérek dagang kadaptar ti Oracle Corporation Grup.

Naon hiji Asép Sunandar Sunarya?

Disebut Asép Sunandar Sunarya tipe data, nu nyimpen nilai wilanganana. Unggal nilai sapertos ieu disebut salaku komponén Asép Sunandar Sunarya na angka ti mana ngiket komponén, disebut indéks. JavaScript-Asép Sunandar Sunarya ti untyped. Ieu ngandung harti yén sésa padet bisa mibanda tipe naon, jeung bagian nu sejen milik ka Asép Sunandar Sunarya sarua, boga jenis lengkep béda.

Sajaba ti éta, JavaScript-Asép Sunandar Sunarya téh dinamis, tur eta anu ngomong yén anu ukuranana tetep teu kudu jadi nyatakeun. Saatos nambahkeun patempatan anyar iraha wae.

produksi padet

Ngagunakeun basa JavaScript nyieun Asép Sunandar Sunarya rada hésé. Aya dua metodeu pikeun ieu. Kahiji ngalibatkeun produksi hiji Asép Sunandar Sunarya maké literal - tina kurung kuadrat, di jero nu ieu disimpen daptar barang, dibagi ku koma.

  • var = kosong []; // Asép Sunandar Sunarya kosong;
  • var numers = [4, 1, 2, 5]; // Asép Sunandar Sunarya sareng lima komponén digital;
  • var diff = [1,5, palsu, «téks"]; // Asép Sunandar Sunarya sareng tilu unsur tipena béda.

Sakumaha aturan, éta henteu diperlukeun janten nilai basajan (barisan jeung angka). Éta ogé bisa jadi naon baé ungkapan sejen, contona, literals obyék, fungsi sarta arrays lianna.

Cara kadua pikeun nyieun hiji desainer Asép Sunandar Sunarya téh keur nelepon Array (). Pikeun ngundang anjeunna ka salah sahiji tilu padika:

  • Nelepon desainer tanpa alesan: var b - Array anyar (). Eta nyadiakeun keur kreasi hiji Asép Sunandar Sunarya sarimbag kosong ka literal kosong [].
  • desainer geus kuduna nangtukeun nilai n tina komponén Asép Sunandar Sunarya: var b = Array anyar (1, 3, 5, 8, "garis», leres). Dina hal ieu, desainer nu dibere daptar alesan, nu disulap jadi hiji komponen Asép Sunandar Sunarya anyar. Alesan anu ditulis ka Asép Sunandar Sunarya téh lokasi dimana dituduhkeun.
  • Watesan wengkuan pikeun nilai assigning salajengna. Hal ieu dilakukeun alatan nangtukeun éta Asép Sunandar Sunarya deteksi angka hiji enclosed dina kurung: var b = Array anyar (5). Metoda ieu beungeut ngalibatkeun alokasi nu Asép Sunandar Sunarya jumlahna diperlukeun komponén (masing-masing kadaptar salaku undefined) sareng kamungkinan assigning nilai dina presentasi. formulir ieu biasana dipaké pikeun tos allocate nu Javascript-Asép Sunandar Sunarya anu panjangna geus dipikawanoh sateuacanna.

Ngarekam, maca tur nambahkeun wincik Asép Sunandar Sunarya dina

Meunang ka komponen Asép Sunandar Sunarya meureun via operator []. Ku jalan kitu, sakabéh komponén di JavaScript, mimitian ti enol, nu wilanganana. Pikeun ménta unsur perlu, nandaan angka na di kurung alun. Salaku aturan umum, item bisa robah. A JavaScript pikeun nambahkeun ka Asép Sunandar Sunarya, geus cukup pikeun ngadaptarkeun nilai anyar.

Ieu kudu dicatet yén di JavaScript arrays bisa nyimpen nomer salah sahiji elemen nanaon nanaon.

Panjang Asép Sunandar Sunarya dina

Sangkan terang naon JavaScript. panjangna ti Asép Sunandar Sunarya sacara umum mangrupa fenomena metot. Hayu urang nganggap hal éta dina leuwih jéntré. Kabéh Bulan anu diwangun ngagunakeun Array desainer () sarta kauninga ngaliwatan hiji Asép Sunandar Sunarya literal boga sipat panjang husus, nu withdraws total jumlah elemen sparing. Kusabab Asép Sunandar Sunarya meureun pasti ti rinci (undefined The ditunjuk), ekspresi nu leuwih akurat hurung kitu: panjang Quality sok gede ku salah ti jumlah panggedéna (indéks) tina komponén Asép Sunandar Sunarya. panjangna kualitas disaluyukeun otomatis, tinggal akurat dina penampilan hiji Asép Sunandar Sunarya ti rinci anyar.

Pikeun nembongkeun komponén ahir hiji Asép Sunandar Sunarya, anjeun tiasa nganggo harta panjangna.

Bagian tukang nyaéta indéks hiji kirang ti ukuran Asép Sunandar Sunarya dina. Saatos mundur dina ngawitan salawasna ti scratch. Oh, JavaScript ieu! Panjang Asép Sunandar Sunarya gumantung jumlah pasti miboga elemen. Sabab, lamun anjeun teu nyaho sabaraha kudu aya, tapi maneh kudu giliran unsur ahir Asép Sunandar Sunarya dina, perlu panawaran catetan: v.length - 1.

Iterate nu Asép Sunandar Sunarya bagian

Mindeng pisan, harta panjang anu dipaké pikeun iterate ngaliwatan Asép Sunandar Sunarya bagian dina siklus ka:

  • var bungbuahan = [ «strawberry", "peach," "apal" "cau"];
  • pikeun (var I = 0; i
  • document.write (bungbuahan [i] + «...»).

Dina conto ieu nembongan yén komponen nu disusun mayeng tur mimitian ku bagéan hareup nu nyepeng indéks nol. Upami ieu henteu hal, méméh nelepon unggal unsur Asép Sunandar Sunarya kudu dipariksa lamun eta dihartikeun.

siklus ieu ogé sakapeung dipaké pikeun initialize komponén.

Kanaékan jeung Asép Sunandar Sunarya truncation

Kuring heran kumaha ngagunakeun basa JavaScript string kana hiji Asép Sunandar Sunarya pikeun nambahkeun? Dina prosés gawé bareng arrays, panjangna panjangna otomatis ngaronjatkeun kualitas, naha nu mangrupa urang kudu ngurus eta diri. Perlu ngelingan a jéntré tunggal - sipat panjangna henteu sadia pikeun maca wungkul, tapi keur catetan. Lamun nilai atribut panjangna kualitas anu méré ukuran anu ayeuna, Asép Sunandar Sunarya dina diréduksi ka nilai predetermined. Sagala komponen nu teu kaasup dina rentang anyar ditempokeun, ngagoler, sarta nilai maranéhanana anu leungit, sanajan lamun engké balik deui panjangna - nilai teu dibalikeun.

Rada saukur ngabersihan Asép Sunandar Sunarya salaku: foo.length = 0.

Lamun kualitas panjangna ngaji gede ti nilai kiwari, di ahir Asép Sunandar Sunarya bakal jadi anyar, komponén unidentified, anu baris ngaronjatkeun ka ukuran nu dipikahayang.

Mupus hiji Asép Sunandar Sunarya ti rinci

Operator Hapus nunjukkeun komponén tina Asép Sunandar Sunarya pikeun undefined tapi terus aya dina hal ieu. Lamun Anjeun hoyong cabut unsur JavaScript tina Asép Sunandar Sunarya supados bagian sésana bergeser ka tempat kosong, anjeun kudu make salah sahiji cara pikeun ngaduga Asép Sunandar Sunarya dina. Metoda Array.shift () ngaluarkeun komponén kahiji, pop () - terminating komponén tur metoda splice () - salah sahiji komponén atawa dibasajankeun mana Asép Sunandar Sunarya.

arrays multidimensional

Sigana nu urang ngarti saeutik, naon JavaScript. arrays dua diménsi - nu perlu dianggap salajengna. Anjeun inget yen arrays JavaScript bisa ngandung salaku komponen item nu sejen? fitur ieu dipaké pikeun produksi arrays multi-dimensi. Nganjang komponén dina Asép Sunandar Sunarya ti arrays téh cukup pikeun nerapkeun kurung dua kali.

arrays associative

Ayeuna urang diajar kumaha carana dagang migunakeun JavaScript arrays associative. Jang ngalampahkeun ieu kami kudu ngungkaban teori: arrays associative nu kadangkala disebut tabel Hash. Hatur nuhun ka aranjeunna, tinimbang tina barisan indéks aya dilarapkeun. Pamakéan struktur sapertos reminiscent tina pamakéan nami sipat hiji objek basajan, tapi perwujudan ieu, kinerja gawe dina format Asép Sunandar Sunarya. Kusabab aya euweuh cara manipulasi JavaScript arrays associative, aranjeunna dipaké teuing kirang remen ti biasa. Ieu kudu dicatet yén maranéhna masih tiasa mangpaat pikeun neundeun data jeung simplify neundeun bagian, anu bakal diakses.

kaluaran Asép Sunandar Sunarya

Tur ayeuna urang diajar dina Sistim JavaScript? Kaluaran Asép Sunandar Sunarya ka kotak dialog (dina layar), kitu oge nilai kaluaran komponén Asép Sunandar Sunarya.

Lamun program nu rék mintonkeun nilai sadaya komponén, teras éta merenah panawaran parentah pikeun. Narikna, aturan variable-counter pikeun pamakéan dina waktos anu sareng salaku komponén indéks Asép Sunandar Sunarya.

beberesih

Dina raraga nyaring hiji Asép Sunandar Sunarya ti JavaScript, anjeun kudu ngareset panjang na:

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

handap nembongkeun palaksanaan tujuan jelas (), dina kerangka, JavaScript-Prototype:

  • jelas: fungsi () {;
  • this.length = 0;
  • balik ieu;
  • }.

Nambahkeun jeung nyoplokkeun komponén

Muhun, urang teruskeun jang meberkeun neuleuman basa JavaScript seru ieu. Asép Sunandar Sunarya unsur-gancang sarta ngaleupaskeun ditambah cara sarua sakumaha pasipatan konvensional objék séjén. Tapi aya sababaraha beda: nambahkeun sipat numerik panjangna kualitas bisa rupa-rupa, tapi modifikasi tina panjangna sipat bisa ngaleungitkeun kualitas numeris. Sacara prinsip, salaku install algoritma di arrays nyaéta saperti kieu:

  • Nalika nambahkeun hiji sipat kanyahoan digital tina abdi, upami panjang sarua jeung atanapi kirang ti abdi, panjang téh ditetepkeun jadi abdi + 1.
  • Lamun anjeun ngarobah kualitas panjangna nedunan léngkah di handap ieu: lamun nilai ditugaskeun téh kirang ti enol, lajeng throws RangeError. Eliminates sadayana indexes kualitas numeris anu sarua jeung panjangna anyar, sarta gede ti.

Sabenerna dipiceun Asép Sunandar Sunarya JavaScript unsur nyaéta basajan. Barina ogé, malah netepkeun panjangna, Anjeun kudu ngaleupaskeun "tambahan" komponen ti eta. Kitu kieu ti ieu Asép Sunandar Sunarya pilihan beberesih. Lamun variabel anu ditugaskeun hiji Asép Sunandar Sunarya kosong anyar, pikeun alesan naon, éta teu wareg, sarta perlu ngareset ayeuna, kualitas nyaeta panjang cukup pikeun ngadaptarkeun nilai tina enol.

métode unshift, shift, pop jeung push

Najan kanyataan yén komponen Asép Sunandar Sunarya nu robah sacara manual, loba nyarankeun ngagunakeun ieu diwangun-di padika. Éta nuansa ieu jaminan nilai bener kualitas jeung kurangna panjang dina pas Asép Sunandar Sunarya. Ku jalan kitu, kualitas panjangna bener bakal pakait jeung jumlah komponén.

Prosésna ngalir nyorong ahir Asép Sunandar Sunarya dikirimkeun item. Pop deui prosés méré komponén final sarta ngaluarkeun eta.

Umumna dina Internet Explorer handapeun versi kadalapan unshift bisa balik undefined, dina panyungsi lianna - ajén anyar panjangna. Supados nilai balik ti unshift nu hadé teu miharep.

Ditambah jeung ilangna bagian di tengah Asép Sunandar Sunarya dina

Lamun Anjeun hoyong pupus hiji Asép Sunandar Sunarya ti JavaScript, Anjeun kedah nyandak? Perlu dipikanyaho yén métode ngabogaan Array.prototype.splice splice signature.

Anjeunna withdraws ti komponén Asép Sunandar Sunarya deleteCount, dimimitian ku indéks mimiti. Lamun maot leuwih ti dua alesan, sadaya alesan saterusna dina Asép Sunandar Sunarya nu disusun dina tempat nu liquidated. Lamun mimiti nyaéta dikurangan, indéks dina nu keur ngahanca ditarikna bakal sarua jeung panjangna teh + ngamimitian. Balik ka Asép Sunandar Sunarya ti elemen jauh lumangsung.

Kanyataanna, maké metodeu splice, kasebut nyaéta dimungkinkeun pikeun miceun komponen ti tengah hiji Asép Sunandar Sunarya atawa tambahkeun angka wae mana di Asép Sunandar Sunarya dina.

Dina perwujudan pangbasajanna, upami perlu dipiceun komponénna kalawan indéks i, Asép Sunandar Sunarya dina perlu menta metoda splice mibanda parameter i na 1.

Sacara prinsip, pilihan kadua dina metoda splice teu wajib, tapi laku fungsi nu mibanda hiji argumen pikeun tiap browser mah béda.

Contona, dina Firefox, Opera dina variasi panungtungan, sagala rinci nyanghareupan ahir Asép Sunandar Sunarya bakal dihapus dina Safari sarta Chrome.

euweuh komponén tunggal keur ngaleungitkeun di IE. Variasi munggaran mustahil pikeun ngaduga paripolah Opera - bakal dikaluarkeun hiji item sareng indéks mimiti - 1. Sabab éta salawasna diperlukeun dina metoda ieu pikeun ngirimkeun sahenteuna dua komponen.

kenop

Tangtu, diajar JavaScript, arrays associative, sakumaha disebutkeun tadi, anjeun kedah ogé teu overlooked. Ieu hiji tempoan abstrak tina informasi (interface ka toko data), nu ngidinan keur ngahemat sapasang wujud "(konci, nilai)" jeung operasi nambahkeun sapasang rojongan, kitu ogé ngahapus sarta pilarian sahiji pasangan konci:

- manggihan (konci).

- ngalebetkeun (nilai, konci).

- Cabut (konci).

Hal ieu dipercaya yén dina Asép Sunandar Sunarya associative moal bisa nyimpen dua pasang ku kenop nu sarupa. Dina sababaraha k + vv ngarupakeun nilai pakait sareng k konci. Semantik jeung didieu jeung operasi luhur di sagala rupa implementations of arrays misalna bisa jadi béda.

Ku kituna, manggihan operasi (konci) mulih hiji nilai pakait sareng konci dibikeun, atawa UNDEF obyék husus, hartina nilai nu pakait sareng konci dibikeun, offline. Dua lampah sejenna ulah balik (iwal data ngeunaan naha operasi éta suksés).

Sacara umum, dina jihat panganteur, Asép Sunandar Sunarya associative nu dianggap salaku Asép Sunandar Sunarya basajan, wherein sakumaha indéks bisa dilarapkeun teu ukur angka integer tapi jenis sejen tur nilai - contona, garis.

Saliwatan, rojongan pikeun arrays sapertos anu diolah aya loba basa programming-tingkat tinggi kayaning PHP, Perl, Ruby, Python, Tcl, JavaScript jeung sajabana. Pikeun basa nu boga diwangun-di parabot pikeun digawe sareng arrays associative, dijieun hiji angka pisan tina realizations dina bentuk perpustakaan.

Conto hiji Asép Sunandar Sunarya associative bisa ngawula salaku diréktori telepon. Dina perwujudan ieu, nilai tos disetel "F. IO + e ", jeung konci - jumlah telepon. Hiji nomer telepon hiji master tapi hiji jalma bisa sorangan sababaraha angka.

extension pakait

Ieu kudu dicatet yén ekstensi pang alusna-dipikawanoh kaasup handap:

  • Tiap - «walk» on sadayana ngaheéat pasang.
  • Jelas - dihapus sakabeh eusi.
  • Mnt - pikeun manggihan pasangan jeung nilai konci panghandapna.
  • MAX - pikeun manggihan pasangan jeung nilai konci panggedena.

Dina dua kasus panungtungan anjeun kedah on kenop dituduhkeun pangaruh perbandingan.

Realisasi arrays associative

Aya loba implementations béda ti Asép Sunandar Sunarya associative. palaksanaan paling umum bisa jadi dumasar kana hiji Asép Sunandar Sunarya basajan anu komponén nu pasang (konci nilai). Pikeun nyepetkeun fungsi pilarian, anjeun tiasa ngatur komponen Asép Sunandar Sunarya dina ku Pananjung konci sarta ngalaksanakeun ngagunakeun hiji pilarian binér. Tapi baris ngaronjatkeun jumlah waktu diperlukeun pikeun nambahkeun hiji pasangan anyar, sakumaha bakal perlu "nyorong" komponén Asép Sunandar Sunarya anu mecenghul dina sél kosong pak rékaman seger.

palaksanaan nu pangalusna dipikawanoh, dumasar tatangkalan pilarian béda. Contona, dina hiji kamar bacaan STL C ++ bahasa gandeng peta has anu dilaksanakeun dina dasar hideung mahoni. Dina Ruby, gaya, Tcl, Python migunakeun salah sahiji tipe tina tabel Hash. Aya palaksanaan lianna.

Sacara umum, tiap palaksanaan boga kaunggulan jeung kalemahan sorangan. Kadé sakabeh tilu operasi anu kaeusi dina average, sarta dina periode awon tina nuansa ngeunaan (log n), dimana n - jumlahna ayeuna keur ngahemat tara. Pikeun tangkal pilarian concerted (kaasup tangkal hideung beureum), kaayaan ieu téh wareg.

Perlu dipikanyaho yén di implementations dumasar kana tabél Hash, waktu average diartikeun D (1), anu leuwih hade tinimbang dina lampah dumasar kana tangkal pilarian. Pasti, ieu teu ngajamin prestasi-speed tinggi Operasi misah: waktos Peta ngalebetkeun dina hal awon, dilambangkeun ku O (n). prosés ngalebetkeun anu dipigawé pikeun lila lamun babandingan tugas ngahontal titik pangluhurna, sarta aya kudu ngarekonstruksikeun indéks tabel Hash.

Ku jalan kitu, pernyataan ieu Hash goréng yén dina dadasar ieu mustahil nedunan Peta tambahan gancang MAX, mnt, sarta hiji algoritma neangan sagala ngaheéat pasang di nurun urutan atawa naek kenop.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 su.atomiyme.com. Theme powered by WordPress.