Komputeran, Bernameyên
JavaScript-array û afirandinên xwe. All about array JavaScript
Di vê nivîsê de em dê li JavaScript-array, pêkhateyên wê binêrin. JavaScript a zimanê-senaryoya sîwaneke bêkêmahî ji bo bernameyên e. Di rastiyê de, ev ziman ECMAScript (standard ECMA- 262) çêdikin.
Of JavaScript? Ev wek zimanê bicîbûyî de ji bo diyarkirina riya bernameya ji bo sepanê mijarê de tê bikaranîn. Ev dikare di geroka dîtin: ku li wir wek zimanê scripting ku dide rûpelên webê înteraktîf bikaranîn.
Taybetiyên mezin ên mîmariya vî berhemê in Wêrek dînamîk û qels, bîra îdeal fonksiyonên bernameyên avtoupravlenie ku tiştên ji bidawîbûna yekem in.
Di rastiyê de, di JavaScript bandora ber sedemên cuda, ji ber ku pêşketina wê a zimanê similar to Java, lê bikaranîna wê hêsan e by bernamenûs, biafirînin. Di vê navê de, bi zimanê JavaScript ti şîrketa an rêxistineke ku jî ew ji çend styles bernameyên bi kar ji hêla Pêşdebirên web cuda xwe ne.
Ev divê bê diyarkirin, ku JavaScript - markayeke qeydkirî, ji Oracle Corporation Group.
an array çi ye?
Navê array type welat, ku nirxên ku nimreya bimije. Her wiha nirxa ku wek hêmana array û reqema ji ku bandorê li component xuyanê, bi navê 'index. JavaScript-array ji untyped. Ev tê wateya ku parçeyên solid dikarin çi type, bi deverên din yê ku ji array eynî ne, cureyên bi temamî cuda hene.
Li gel vê, JavaScript-array dînamîk e, û ev gotin ku a size sabît hewcedariya îlan ne bê. Piştî ku got, beşên nû li her demê.
hilberîna solid
Bikaranîna zimanê JavaScript ji bo afirandina array pir dijwar. du rêbazên ji bo vê hene. Yê pêşî ye ku hilberînê ya array bikaranîna teşbîhî - ji bixemilînî, li hundir ya ku lîsteyek ji tomar danîn, dabeş destê biqetîne.
- var = vala []; // array vala;
- var numers = [4, 1, 2, 5]; // array bi pênc pêkhateyên dîjîtal;
- var cudahî = [1.5, derewîn, «text"]; // array bi sê elementên ji cureyên cuda.
Wek qaîde, ku pêwîst ne ji bo nirxên sade (rêzî û hejmar). Ev jî dikare her îfadeyên din jî, ji bo nimûne, literals object, fonksîyon û array din be.
Rêya duyem ji bo ku designer array e ji bo banga Array (). To wî vedixwînin ku yek ji sê awayên:
- Bang a designer bêyî argumentên: var b - new Array (). Ev ji bo çêkirina yeka array vala ji bo rastîn vala [] pêşkêş dike.
- The designer hatiye eşkere destnîşankirina n nirxê yên pêkhateyên array li: var b = new Array (1, 3, 5, 8, "xeta», rast e). Di vê rewşê de jî, designer a list of argumanan, bi yên ku di nav pêkhateyên array nû guhertin kirin. Sedem ji bi ji array nivîskî de cihê ku diyar e.
- Pênasekirina vê çarçoveyê de ji bo nirxên bêhtir hêzeke. Ev ji aliyê kîjan array tespîtê de hejmareke di nav parantezê de pêvekirî kirin: var b = new Array (5). Ev awayê detection dimeşin array dabeşkirina pereyên pêwîst yên pêkhateyên (ku her wekî undefined di lîsteyê de) bi îhtîmala hêzeke nirxên Di pêşkêşiyê de. Ev form e, bi piranî ji bo zarokxana-veqetandin, ji Javascript-array ku dirêj e di pêş zanîn.
Recording, xwendin û wiha got hûragahiyan li array
Get to pêkhatên array dikarin bi rêya operator [] be. Di vê navê de, ji hemû pêkhateyên li JavaScript, Guherandinên ji sifir, bi hejmartî ne. Ji bo bidestxistina hêman pêwîst, nîşan dide Hejmara xwe ya li bixemilînî. Lê wek nerîtek giştî, tomar dikare bê guhertin. A JavaScript ji bo lê zêde bike ji array, ew bi peywirdarkirin a nirxa nû bes e.
Ev divê bê diyarkirin, ku di JavaScript array nikare ti hejmara hêmanên tu cihêyî bikim.
Dirêjahî ya array
Îcar em dizanin çi JavaScript. length ji array di giştî weke diyardeyeke balkêş e. Bila ji me re ew di detail zêdetir bifikirin. Hemû sîstemęn bi kar Designer Array () tên çêkirin û tesbîtkirin û bi riya array û teşbîhî xwedî milk length taybet, ku vekişîne ku hejmara giştî ya hêmanên nakevin. Ji ber ku array be ne diyar e ji hûragahiyan (undefined The terxankirî), a ramanê çêtir dengên da: length Quality e her tim ji aliyê yek ji hejmara (index) ji component array mezintir. length Quality bixweber hebę, dimîne rasteqîne li peydabûna array hûragahiyan nû.
Ji bo vekirina hêmana dawîn ya array, tu milk length de bi kar tînin.
Di beşa dawî de index yek kêmtir mezinbûna array e. Piştî ku berevajî dest tim ji sifirê. Oh, ev JavaScript! Dirêjahî ya array girêdayî li ser hejmara wan xwe ji hêmanên. Ji ber vê yekê, ger hûn nizanin ku çawa gelek divê li wê derê be, lê divê hûn ji bo tobekirinê hêmana dawîn ên array, pêwist e serî li record: v.length - 1.
Iterate li array ji perçeyên
Pirrî caran, milk length ya tê bikaranîn ji bo iterate ser array ji parçeyên di dewra:
- var berên = [ «strawberry", "peach," "apple," "banana"];
- ji bo (var ez = 0; i fruits.lenght <; i ++);
- document.write (berên [i] + «...»).
Di vê mînakê de, wisa dixuye ku pêkhateyên bi berdewamî sazkirin û bi beşa yekem, ku roja index sifirê dest pê bike. Eger ev yek pêk ne, li ber banga her elementeke ku array divê werin kontrolkirin, eger ev danasîn.
Dewra jî carna sifir pêkhatên bikaranîn.
Zêdebûna û array truncation de
Min gelo çawa bikaranîna zimanê JavaScript string nav an array ji bo lê zêde bike? Di pêvajoya xebatê de bi array, length length automatically çêtir ku kalîteya wê, ew e ku çima em xwe bi xwe mijûlî ew bi xwe. Ev pêwîst e ji bo bi bîr a detail single - property dirêj e ji bo xwendin-bi tenê ne amade ne, lê ji bo ku rekor. Ger ku nirxê taybetmendiyê length quality ku dide size yên niha, li array ye ji bo nirxê zafanê kêmkirin. Bęjeyek ji pêkhateyên ku di rźza nû yên dikarin, li ser sifrê, û nirxên xwe di nav de ne bi dest, heta eger hûn paşê vegerin length - nirxên qenc bi bê.
foo.length = 0: kurtasî li array wek paqijkirina.
Eger bi kalîteya length run mezintir nirxa anha wê, li dawiya array wê ya nû, hêmanên nediyar, ku ew ji size xwest zêde wê.
Jêbirina nedadî yên hûragahiyan
The operator delete nîşan dide ser pêkhênanê ku ji array to undefined, lê ew jî berdewam dike ji bo di vê rewşê de hene. Heke tu dixwazî jê hêmana JavaScript ji array, da ku li beşa mayî ji cihê vala guhert, pêwîst e tu ji bo bikaranîna yek ji riyên ku pêşbînî li array. Method Array.shift () jê re pareyek yekem, pop () - Betalkirina component û Animale rêbaza () - pêkhatek yan jî ihtîmalên derê array.
array de bipêşvebibin
Ev xuya dike ku em fêm demeke kurt, çi JavaScript. array. Du-rehendî - ku divê zêdetir bê nêrîn. Ma hûn bînin bîra xwe ku array JavaScript dikare wekî pêkhatên din ên ku tên bikaranîn? Ev taybetî ji bo hilberîna array pir alî de tê bikaranîn. To serdana pêkhatên li nedadî yên array serî de bixemilînî du car bes e.
array associative
Niha em hîn çawa trademark tîne JavaScript array associative. Ji bo vê jî divê em ji bo di nav teoriya binêrin: array associative bi carna maseyên hash kir. Sipas ji bo wan, ji dêvla rêzên index ya bi serî. Bikaranîna van avahiyên ku pêlên bikaranîna navê taybetiyên a object sade, lê di vê bighîjne, performansê ji karê di format array. Ji ber ku tu rêyên gunehbarkirin bi JavaScript array associative li wir, ew gelek kêm e, gelek caran ji berê tê bikaranîn. Ev divê bê diyarkirin, ku ew hê jî dikarin ji bo veşartinê welat kêrhatî û sadetir ên nebatî yên ji parçeyên, ku tê xwestin, wê bê.
array Output
Û niha em di sîstema JavaScript xebata? array Output ji box dialog (li ser ekranê), herweha nirxên encam yên pêkhateyên array de.
Ger program ku tu dixwazî ji bo nîşandanê nirxên wê yên ji bo hemû pêkhatên, hingê wê ne misaît serî talîmatên ji bo e. Balkêş e, ku zagonên variable-counter ji bo bikaranîna di heman demê de weke beşek ji index array de.
paqijî
Ji bo palavtina nedadî yên JavaScript, divê hûn ji bo sifirkirina length xwe:
- var myArray = [1, 2, 5, 23];
- myArray.length = 0.
Li jêr nîşan dide ku bicihkirina destination zelal () de, di vê çarçoveyê de, JavaScript-Jü:
- zelal: function () {;
- this.length = 0;
- vegere ev;
- }.
Zêdekirin û şop û pêkhatên
Baş e, em berdewam bi ilham zêdetir ev zimanê JavaScript heyecan. element array ku pêkan û bi jê û zêde bi eynî awayî wek milkên adetî, ji tiştên din. Lê belê, hin cudahiyên heye û wiha milkên hejmar length quality may vary, di heman demê de di guhertinê ji ber dirêjahiya milkên dikarin bên rakirin quality hejmarî. Di prensîbê de, wek rêbazeke sazkirina li array wiha ye:
- Dema got, a milkên nenas dîjîtal ên i, eger length bi wekhev an kêmtir i e, length bi biryar be i + 1 e.
- Gava ku tu guhertina quality of length ji bo pêkanîna gavên jêr e: Eger nirxa rêdan kêmtir ji sifir e, paşê bavêje RangeError. Tasfiye hemû encamen quality hejmarî ku bi dirêjahiya nû wekhev, û mezintir in.
Di rastiyê de jê element array JavaScript hêsan e. Piştî ku hemû, heta danîna length, divê hûn ji bo jê pêkhatên "zêde" ji wê. Ev ji vê array option paqijî wiha ne. Eger variable is a array vala ya nû, ji bo çi sedemê rêdan, ne razî bûn, û wê pêwîst e ji bo sifirkirina niha, qalîteya wê ya dirêj, bi têra xwe nedine a value of zero e.
rêbazên unshift, guherîna, pop û push
Bi tevî, ku pêkhatên array bi destan bide guhertin jî, gelek pêşniyar ji bo bikaranîna vê rêbazên ava-in. Ev e vê zilmê garantî dike ku nirxa rast a bi kalîte û ji ber nebûna length li gêdûkên array de. Di vê navê de, ji aliyê qeliteya length kontrol bike, wê ji bo hejmara pêkhateyên biþînim.
The pêvajoya dahatûya bo konaxa dawiya array waxtekî tomar de. Pop dîsa pêvajoya hêmana dawîn dide û ev jê re.
Bi gelemperî, di Internet Explorer di bin Versiyon ji heştan unshift dikarin vegerin undefined, li gerokên din - nirxa nû ya length. Da ku nirxê vegera ji unshift baştir bi hêvî ne.
The gel û tasfiyeyê yên parçeyên di nîvê array
Heke tu dixwazî nedadî yên JavaScript bibî, divê tu bi xwe? Ev tê zanîn ku vê yêkêye a Array.prototype.splice sîgnatûrek Animale.
Ew ji pêkhatên array deleteCount vekişîne, destpêkê de bi dest index. Ger tu derbas bêtir ji du argumanan, hemû argumentên ku piştre di array bi li cihê yên pereyan li darxistin. Heger destpêka minus e, nimînok a at ku ji nû ve destpêkirinê vekişîna ji length wekhev dê bibe + dest. Eger em vegerin array hêmanên dûr cih.
Di rastiyê de, bi bikaranîna teknîkên Animale, gengaz e ku mirov jê pêkhateyên ji nîvê an array an jî lê zêde bike tu hejmara derê array.
Di sadetirîn bighîjne, eger pêwîst e ku jê pêkhênanê ku bi index i, li array pêwîstî bi xwestina rêbaza Animale bi Parametreyên i û 1.
Di prensîbê de, ya duyemîn li ser rêbaza Animale e diyarkirî ne, di heman demê de helwesta function bi yek argumana ji bo her browser cuda ye.
Ji bo nimûne, li Firefox, Opera di cara variations, hemû detayên berî dawiya array, wê bê li Safari û Chrome rakirin.
no component single di IE tasfiye kirin. Roziya yekem ne mimkun e mirov pêşbînî bike, ji şêla Opera - dê yek babete bi Pêrista destpêkê rakirin - 1. Ji ber vê yekê ew e ku her dem pêwîst li vê rêbazê bo vîdeoyên qet nebe du pêkhateyên.
miftên
Bê guman, fêrbûna JavaScript, array associative, ku me berê qal, divê tu jî bi jibîrkirî, bê. Ev dîtina razber yên agahî (bi virtual ji bo store welat de), ku destûrê dide bo rizgarkirina cotek forma "(key, nirxê)" û vê operasyonê de ji got, cotek desteka, herweha jêbirina û lêgerîn li ser cota mifteya e:
- Find (key).
- zaroki (nirx, key).
- REMOVE (key).
Tê bawerkirin ku ku di array associative ne dikarin xwe xilas du cotên bi keys similar. Di çend k + vv nirxa têkildar bi k key e. Xwebêj û li vê derê bi operasyonên li jor li pêkanînên cuda yên wisa array, dikarin cuda bin.
Bi vî awayî, FIND operasyona (key) vedigere nirxê têkildar bi key dayîn, an jî UNDEF object taybet, tê wateya ku nirxê têkildar bi key dayîn, offline. Du çalakiyên din jî hûn (ji bilî ji bo daneyên li ser ka operasyona serkeftî bû) vegere ne.
Bi giştî, di warê virtual, array associative e, ku wek array sade hesibandin, ku tê de weke nîşanên bên derxistin tenê bi hejmara hijmar e di heman demê de cureyên din û nirxên - ji bo nimûne, xetên.
Tesaduf, piştgiriya ji bo van array bi derman ne bi gelek zimanan bernameyên asta bilind yên wekî PHP, Perl, Ruby, Python, Tcl, JavaScript û yên din hene. Ji bo zimanên ku ne xwedî Amûrên ava-in ji bo xebatê bi array associative, ku bêhejmar realizations di form of pirtûkxaneyên afirandin.
An nimûne ji array associative dikarin wek kataloga telefonê xizmetê. Di vê bighîjne, nirxa temam e ", F. IO + e ", û di key - hejmara telefonê. Yek hejmara telefona yek master e, lê kesek nikare hejmara multiple xwe.
extension têkilîdar
Ev divê bê diyarkirin, ku pêvekên herî navdar in li jêr e:
- HER - «rêve», li ser hemû rizgar cotên.
- CLEAR - bibî hemû entries.
- MIN - ji bo cotek herî kêm nirxê key.
- MAX - ji bo cotek bi afirandina nirxa key.
Di her du rewşan de cara ku divê hûn li ser keys got bandora berhevdana.
Maketa array associative
Gelek pêkanînên cuda yên array associative hene. Ji bo sepandina herî dibe ku li ser array sade ku pêkhateyên ne cotên (key nirxê) ava kirin. Ji bo bilezkirina fonksiyonên lêgerînê, tu pêkhateyên array destê zivik key saz û cîbicîkirina bikaranîna a search binary. Lê belê ew dê li gorî dema pêwîst ji bo lê zêde bike cotek nû zêdetir, wek ku wê pêdivî bi "dehf" pêkhateyên array ku xuya bû di hucreyê de vala to pack rekoreke nû.
Ji bo sepandina herî baş tê zanîn, li ser darên lêgerîn cuda. Ji bo nimûne, li odeyeke xwendinê STL map tîpîk C ++ zimanê Trailers ye li ser bingeha reş û mahogany pêkanîn. Di Ruby, styles, Tcl, Python tîne yek type of maseyên hash. ne pêkanîna din hene.
Bi giştî, her pêkanîna xwedî awantaj û dezawantajên xwe bi xwe. Ev girîng e, ku her sê operasyonên li naverast derbas bûn, û di rewşa herî xerab dema ji zilmê li ser (log n), ku n - Hejmara niha wî xilas bike par. Ji bo darên lêgerîn tund (di nav de, darên reş û sor), ev rewşa razî ye.
Ev tê zanîn ku di pêkanînên li ser maseyên hash, dema naverast wekî (1) D, çêtir di çalakiyan de li ser darên lêgerînê e ku danasîn. Zaroki dema çalakiyê de di rewşa herî xerab, kevanan wek O (n): Bê guman, ev nayê a performance bilind-leza operasyonên cuda de misoger ne. pêvajoya zaroki ji bo demeke dirêj dema ratio erkê li ser birca digihîje çêkiriye, û ev e ku pêwîstiya bi avedankirina index hash tabloyê de heye.
Di vê navê de, ji van gotinan re nederbasdar a xerab ku li ser vê bingehê ne mimkun e ji bo pêkanîna çalakiya bi lez din MAX, MIN, û rêbazeke ji bo lêgerînê hemû rizgar cotên li xwarê, da an derdikevim keys.
Similar articles
Trending Now