OrdenagailuakProgramazioa

Javascript-array eta bere sorrera. Guztiak Javascript matrizeak buruz

Artikulu honetan Javascript-array, bere osagaiak aztertuko dugu. Javascript perfektua eszenatoki bideratutako hizkuntza bat programazio diseinatuta dago. Izan ere, ECMAScript hizkuntza (estandarra ECMA-262) inplementatzen du.

Javascript Of? It hizkuntza kapsulatutako gisa erabiltzen da ordena gaia aplikazioa programan bidea zehazteko. nabigatzailean aurki daiteke: erabiltzen da han scripting hizkuntza bat, web orriak ematen duen interaktibo gisa.

The produktu honen ezaugarri arkitektonikoak nagusien Idazteko dinamikoa eta ahula, avtoupravlenie memoria ideal programazio-funtzioak bertan lehen alta objektuak dira.

Egia esan, Javascript desberdina arrazoi eragina, garapen Hizkuntza bat Java antzekoa da, baina erraza programatzaile erabili sortuko lukeelako. Bide batez, Javascript hizkuntza ez duela inongo enpresa edo erakunde hori egiten desberdina web garatzaileek erabilitako programazio estilo kopuru batetik jabea.

Kontuan izan behar da JavaScript hori - Oracle Corporation Group-en marka erregistratu bat.

Zer da array bat?

Izeneko array datu-mota, bertan zenbatuko balioak gordetzen. hala nola, balio bakoitza array osagai eta digitua zein osagaia lotzen gisa aipatzen, indize bat deitu du. untyped of Javascript-array. Horrek esan nahi du, atal solidoa dela edozein izanda mota, array bereko atal ezberdinak dituzten, mota erabat ezberdinak dituzte izan dezake.

Horrez gain, Javascript-multzo dinamikoa da, eta esaten da tamaina finko bat behar ez egon deklaratu. zati berriak gehituz noiznahi ondoren.

ekoizpen solidoa

Javascript hizkuntza erabiliz array nahiko zaila sortzeko. horretarako bi metodo daude. Lehena array literal bat erabiliz ekoiztea dakar - kortxete, horren barruan elementu zerrenda bat jarriko da, komaz banatuta.

  • var = Hutsik []; // Hutsik array;
  • var numers = [4, 1, 2, 5]; // bost osagai digitalarekin array;
  • var diff = [1,5, faltsuak, «testua"]; // hiru mota desberdinen elementu array.

Oro har, ez da beharrezkoa balioak simple (lerro eta zenbakiak) izan. Halaber, beste edozein espresio, adibidez, objektu literalak, beste funtzio eta matrizeak izan daiteke.

array diseinatzaile bat sortzeko bigarren modu bat da Array deitu (). hura gonbidatzeko hiru metodo bat:

  • Deitu diseinatzaile argumentuak gabe: var b - Array berrian (). Hutsik array baliokide baten sorrera literal huts bat [] egiteko aukera ematen du.
  • var b = Array berria (1, 3, 5, 8, "line», egia): diseinatzaile du esplizituki balio array osagaien n zehaztuz. Kasu honetan, diseinatzaile argumentuak dira, bat array osagai berriak sartu eraldatu zerrenda bat aurkezten. Argumentuak dira array idatzitako non adieraziko da.
  • esparrua definitzea balore gehiago esleitzea da. Hau detektatzeko array zenbaki bat parentesi artean zehaztuz egin: var b = Array berriak (5). detektatzeko metodo hau esleitzeko array dakar eskatutako osagaien kantitate (horietako bakoitzak undefined bezala zerrendatuta) balioak esleitzea aurkezpena aukera batekin. Formulario hau normalean aurrez esleitu du Javascript-multzo horren luzera da aldez aurretik ezagutzen erabiltzen da.

Grabaketa, irakurketa eta array xehetasunak gehituz

array osagaiak Talde operadorea bidez [] daitezke. Bide batez, JavaScript osagai guztiak, zero hasita, zenbakituta daude. beharrezko elementuak lortzeko, adierazi du bere zenbaki kortxete. Oro har, elementuak aldatu ahal izango dira. Javascript A gehitzeko array, nahikoa balio berria esleitu behar da.

Kontuan izan behar da hori JavaScript array inolako elementu kopurua gorde daiteke.

array luzera

Beraz, zer Javascript badakigu. orokorrean array luzera fenomeno interesgarria da. Let it kontuan hartu gurekin xehetasun gehiago. areak guztiak Array diseinatzailea () erabiliz eraiki dira eta hitzez hitz multzo baten bidez detektatu dute a luzera jabetza zehatzak, zein elementu sparing kopurua guztira erretiratu. Geroztik array xehetasunak kaskarrak izan daiteke (undefined izendatutako The), adierazpen zehatzagoa soinuak hain: Quality luzera beti bat kopuru handiena (indizea) array osagaia baino handiagoa da. Quality luzera automatikoki egokitu da, xehetasun berriak sorta baten itxura hartu du zehatzena ostatu.

final array baten osagaia erakusteko, luzera jabetza erabili ahal izango duzu.

azken zatia indizean bat array tamaina baino txikiagoa da. atrás ondoren hasiko da beti hutsetik. Oh, Javascript honetan! array luzera bere elementu kopuru zehatza araberakoa da. Beraz, ez baduzu, badakizu zenbat izan behar du, baina array azken elementua piztu behar duzu, beharrezkoa da erregistro aplikatzeko: v.length - 1.

Batetik bestera joateko zatiak array

Askotan, luzera jabetza den zikloaren zati array zehar batetik bestera joateko erabiltzen da:

  • var fruitu = [ «marrubi", "mertxika", "sagar", "platano"];
  • for (var I = 0; i
  • document.write (fruituak [i] + «...»).

Adibide honetan osagaiak etengabe antolatu dira eta lehenengo zatia, bertan indizea zero batekin hasi dirudielako. Hau ez bada kasua, array elementu bakoitza deituz aurretik egiaztatu behar da definitzen badu.

Zikloa ere batzuetan osagaiak abiarazi erabiltzen da.

Hazkundea eta mozteko array

zenbat hizkuntza Javascript-katea erabiliz array batean gehitzeko galdetzen diot? matrizeak lan egiteko prozesuan, luzera luzera automatikoki kalitatea, eta horregatik zaindu zeure burua haren daukagu hobetzen. Beharrezkoa da, detaile bat gogoratzen - luzera jabetza ez da irakurtzeko soilik eskuragarri, baina errekorra da. kalitate luzera attribute balio egungo tamaina ematen bada, array da aurrez zehaztutako balio bat murriztu. Ez diren indizeak, etzan, eta haien balio-sorta berria sartutako osagaiak edozein galdu egiten dira, geroago itzultzeko atzera nahiz luzera - balioak ezin dira berreskuratu.

Nahiko besterik gabe garbitu array gisa: foo.length = 0.

run luzera bere uneko balioa baino handiagoa, kalitatea array amaieran bada berria, identifikatu gabeko osagaiak, eta horrek handitu egingo nahi duzun tamaina izango da.

Xehetasun sorta bat ezabatzea

delete-eragileak definitu gabeko array osagaia adierazten du, baina kasu honetan existitzen jarraitzen du. Javascript array elementu kentzeko, beraz, gainerako zatia hutsik leku desplaza nahi baduzu, array iragartzeko modu bat erabili behar duzu. amaitutzat osagai eta metodo splice bat () - - Metodo Array.shift () lehen osagaia, pop () kentzen osagai bat edo bitartekoa edozein lekutan array.

dimentsio anitzeko matrizeak

Apur bat, ulertzen dugun Badirudi zer Javascript. Bi dimentsioko array - behar gehiago kontuan hartu behar da. Gogoan al duzu Javascript matrizeak duten beste elementu osagai gisa izan ditzake? Ezaugarri honek multi-dimentsioko array ekoizteko erabiltzen da. Osagai bisitatzeko matrizeak array bat nahikoa parentesi birritan aplikatzen da.

elkarte multzo

Orain nola Javascript elkarte multzo erabiltzen den marka komertzial ikasiko dugu. Horretarako teoria begiratu behar dugu: elkarte multzo batzuetan izeneko hash taulak. Horiei esker, ordez indizea ilara aplikatzen dira. egiturak, hala nola objektuaren sinple bat propietate baten izena erabiltzea gogorarazten erabilera, baina isla honetan, lan errendimendua array formatu batean. ez dago manipulatzeko Javascript matrizeak elkartze moduak geroztik, erabiltzen dira, askoz gutxiagotan ohi baino. Kontuan izan behar da dutela oraindik datuak gordetzeko baliagarria izan daiteke eta errazteko piezak, sar egingo gordetzeko.

Irteera array

Eta orain egingo Javascript sisteman ikasketa hauek? Irteera array elkarrizketa kaxa (pantailan) ra, baita irteera array osagaien balioak.

programaren osagai guztien balioak erakutsi nahi duzun bada, orduan erosoa argibideak aplikatzea da. Interesgarria da, aldagai-kontagailua array indizearen osagaia aldi berean erabiltzeko arauak.

garbiketa

Ordena Javascript sorta bat iragazi, bere luzera berrezarri behar duzu:

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

Honako helmuga argi () ezartzeko, esparru bat, Javascript-prototipoa ere erakusten du:

  • Argi: funtzioa () {;
  • this.length = 0;
  • itzuliko honetan;
  • }.

osagaiak gehitzea eta kentzea

Beno, gehiago esploratzen hau zirraragarria Javascript hizkuntza jarraituko dugu. array elementu ahalik eta kentzeko eta, modu berean, gehitu bestelako objektuak propietate konbentzionalak eta. Baina badira ezberdintasun batzuk daude: zenbakizko propietate kalitate luzera aldatu egin daitezke gehituz, baina propietate luzera-aldaketa ere kendu ahal izango dira, zenbakizko kalitatea. Printzipioz, instalatu matrizetako algoritmoa bezala honako hau da:

  • Noiz a i propietate ezezaguna digital gehituz, luzera berdina edo i baino gutxiago bada, luzera zehaztuko i + 1 izango da.
  • Noiz luzera kalitatea aldatzen baduzu urrats hauek egiteko: esleitutako balioa zero baino txikiagoa bada, orduan botatzen RangeError. guztiak zenbaki-kalitate indizeak dituen luzera berriaren berdina, eta baino handiagoak dira ezabatzen.

Egia kendu Javascript array elementu sinplea da. Azken finean, nahiz luzera ezartzen du, "estra" osagaiak kentzeko behar duzu. honela garbiketa aukera hau array bertatik. aldagaia array huts berri bat da, edozein arrazoigatik esleitzen bada, ez ziren pozik, eta beharrezkoa da egungo berrezartzeko, bere kalitate nahikoa luzera zero balioa esleitu da.

unshift metodoak, ordezkapena, pop eta bultzada

Izan ere, array osagaiak eskuz aldatu diren arren, askok gomendatzen hau eraiki-metodoak erabiltzeko. ñabardura hau kalitatearen balioa zuzena eta luzera eza array pasa ere bermatzen da. Bide batez, luzera zuzena kalitatea izango osagaien kopurua dagozkie.

Prozesua mugitzen array transmititu elementuak amaieran bultza. Pop back prozesua azken osagaia ematen eta kentzen da.

Oro har Internet Explorer zortzigarren bertsioan pean unshift undefined itzultzeko, beste nabigatzaile - luzera balioa berriari. Beraz unshift batetik itzulera balioa hobeto ez espero.

Horrez eta ezabatzea zatiak array erdian

Javascript sorta bat ezabatu nahi baduzu, hartu behar duzu? Jakina da metodoa sinadura splice Array.prototype.splice bat du.

erretiratu array deleteCount osagaien zuen, indizea hasieratik hasita. baino bi argumentuak gainditu ezkero, array ondorengo argumentuak guztiak dira kitatu ordez antolatuta. Irteeran ken badago, zein indizean jarraitzeko erretiratzea luzera berdina izango da + hasteko. urruneko elementu multzo itzuliz gertatzen.

Izan ere, splice metodoa erabiliz, posible da osagai kentzeko array baten erdian edo edozein zenbaki gehitzeko lekutan array.

isla errazena, beharrezkoa bada osagaia kendu indize i, array splice metodoa eskatzeko parametro i eta 1 behar.

Printzipioz, splice metodoaren bigarren aukera ez da derrigorrezkoa, baina funtzioa portaera argumentu batekin nabigatzaileak bakoitzerako desberdina da.

Adibidez, in Firefox, Opera azken aldakuntzak ere, array amaitu aurretik xehetasun guztiak Safari eta Chrome kenduko dira.

Osagai bakarreko no da IE kanporatua. lehen aldakuntza ezinezkoa da Opera portaera iragartzeko - kenduko da elementu bat indizea hasiera - 1 Beraz, beharrezkoa da beti ere metodo hau gutxienez bi osagai transmititzeko.

gakoak

Jakina, Javascript ikasteko, elkarte multzo, lehenago aipatu bezala, gainera, ez da ahaztu behar duzu. Hau informazioa (datuak dendan interfazea), eta horri esker inprimakia "(giltza, balio)" eta laguntza pare bat gehituz, baita ezabatzeko eta gako parea bila jo funtzionamendua pare bat gorde ikuspegi abstraktu bat:

- FIND (giltza).

- INSERT (balioa, giltza).

- Kendu (giltza).

Uste da elkarte array ezin antzeko gakoak bi bikote gordetzeko. k + vv pare bat gako k lotutako balioa da. Semantika eta hemen matrizeak horien hainbat inplementazio batez eragiketak batera desberdinak izan daitezke.

Horrela, FIND eragiketa (gakoa) gakoa jakin batean, edo objektu UNDEF zehatz batekin lotutako balio bat itzultzen du, balioa giltza jakin batean, offline lotutako zentzua. Beste bi ekintzek ez itzultzeko (operazioa arrakastatsua izan zen ala ez buruzko datuak izan ezik).

Oro har, interfazea, elkartze-array hori array sinple bat jotzen, dua indizeak aplikatu daiteke gisa zenbaki oso zenbakien baina beste motak eta baloreak ez bakarrik dagokionez - adibidez, lerroak.

Bide batez, matrizeak, hala nola laguntza tratatzen dira, ez dira, hala nola, PHP, Perl, Ruby, Python, Tcl, Javascript eta beste goi-mailako programazio hizkuntza askotan. Hori ez eraiki-tresnak elkarte multzo batekin lan egin behar hizkuntzetan lortzeko, realizations kopuru izugarria sortu liburutegiak formularioa.

elkartze-array bat adibide bat telefono direktorioa gisa balio dezake. Isla honetan, balioa ezarri "F. IO + e ", eta gakoa - Telefono zenbakia. One telefono zenbaki maisu bat da, baina pertsona batek zenbakiak anitz jabea daiteke.

lotutako luzapena

Kontuan izan behar da gehien ezagun luzapenak honako hauek dira:

  • Bakoitzak - «ibilaldi» guztietatik aurrezten bikoteak.
  • CLEAR - sarrera guztiak ezabatzeko.
  • MIN - Funtsezko balio txikiena duen bikote bat aurkitzeko.
  • MAX - Funtsezko handiena balio batera pare bat aurkitzeko.

Azken bi kasuetan gakoetako on konparazio eragina adierazitako behar duzu.

elkarte multzo gauzatzeko

Badira elkartze array inplementazioak hainbat. ezartzea ohikoena multzo soil bat eta haren osagaiak bikote (balioa gakoa) dira oinarritu daitezke. azkartzeko bilaketa funtzioak, array osagaiak antolatu dezakezu gakoa aurkikuntza bat eta erabiliz ezartzeko bilaketa bitarra. Baina zenbat denbora pare bat gehitzeko beharrezkoa handitu egingo da, gisa "bultza" da array osagaiak zelula huts bat agertu freskoa erregistro bat pack behar dira.

Ezagunena ezartzea, oinarritutako bilaketa zuhaitz desberdinetan. Adibidez, ohiko irakurketa gela STL C ++ hizkuntza Trailers mapa batean dago beltzean mahogany oinarrituta ezarri. Ruby ere, estiloak, Tcl, Python hash taulak mota bat erabiltzen du. Badira beste ezartzea dira.

Oro har, ezarpena bakoitzak bere abantailak eta desabantailak. Garrantzitsua da hiru eragiketa guztiak, batez beste bete ziren, eta buruz (log n) ñabardura epea txarrenean, non n - Egungo zenbakia par gordetzeko. hitzartutako bilaketa zuhaitzak (zuhaitzak beltzak eta gorriak barne), baldintza hori betetzen da.

Jakina da bere hash taulak ezartzea ere, batez besteko denbora D (1), hau da oinarritutako bilaketa zuhaitzak ekintzak baino hobeto bezala definitzen da. Noski, horrek ez du bermatzen abiadura handiko eragiketa performance bat: INSERT ekintza txarrena kasuan denbora, O (n) adierazten da. INSERT prozesua da denbora luzez denean betebeharra ratioa punturik altuena iristen burutzen, eta han beharra hash taula indizea berreraikitzeko da.

Bide batez, adierazpen horiek hash txarra oinarri honetan hori ezinezkoa da ekintza osagarriak azkarrak MAX, MIN egiteko, eta bilatu algoritmo bat guztia aurrezten Ordena beheranzko edo goranzko eta gakoak bikoteak.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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