ЈаваСцрипт, низови: опис

10. 5. 2019.

ЈаваСцрипт је модеран програмски језик, јединствен је у смислу синтаксе и семантике. Он је специфичан, али једноставан за употребу и ефикасан када је у питању развој динамичног и поузданог мрежног ресурса.

јавасцрипт арраи

ЈаваСцрипт арраи је модеран облик представљања података који се разликује од сличних структура других језика. Искуство у области представљања и обрада информација за јавасцрипт је увијек имао значајно значење. Овде, у претраживачу, функционише дијалог са клијентом. Овдје је важно брзо раставити линију информација са сервера и обојити је помоћу потребних ознака. Језици сервера формирају садржај и структуру страница, али њихова правилна употреба је брига језика претраживача.

Представљање информација: варијабле и подаци

Професионални развојни програмер користи варијабле у једноставним случајевима када он "ради" за (...) {...}, "контроле" док (...) {...}, "користи" свитцх () {цасе "": ...}, ... структуру у У свим другим случајевима, информације су представљене структурама података.

Пример кода, ауторски уметак, а не цртање

Ријетко, подаци су представљени једноставним скупом варијабли. Ово је статички конструкт који уједињује заједништво у именовању и употреби. Рад са скуповима варијабли је ограничен количином информација које се пружају и стога се користи за једноставне алгоритме и локалне функције.

ЈаваСцрипт арраи је динамичнија и обимнија верзија варијабле када је структура података. Индексирањем низа, на пример, линијом вредности, временом или другим параметром, можете имати различит садржај за сваки индекс. Низ може бити скуп (одређена структура) варијабли, који ће, када се постави у други низ, представљати динамику такве структуре или параметром или временом.

Коначно, можете креирати низ објеката или систем објеката - концептуалну комбинацију података која има структуру, садржај и скуп метода које „саме“ показују одговарајуће особине.

У свим наведеним случајевима, информације су представљене на ригидан, формалан и приступачан начин за обраду путем језика. Само ако је сам код манипулисан "самим системом" објеката и није дозвољена конструкција изван методе неког објекта, можемо рећи да постоји шанса да се обради и створи информација која није формализована или формализована током извођења алгоритма.

Синтактички језички конструкти

У првој апроксимацији, ЈаваСцрипт поље је слично синтактичким конструктима других језика. Семантика је такође еквивалентна, осим облика њеног изражавања. Можете користити синтаксу и семантику ЈаваСцрипта и успјешно ријешити сваки сложени задатак.

јавасцрипт асоцијативни низ

Нема шансе да се постигне пуна мобилност кода и прилагођавање створеног ресурса променљивим условима примене, да се успешно изврши адекватан одговор на сваку непредвиђену промену улазних информација и правила за њену обраду.

Дефинисање стандардне синтаксе језика Јавасцрипт поља Функције и методе су прилично опсежне, али у пракси се обично користи само дио.

Пример кода, ауторски уметак, а не цртање

форЕацх је најинтересантнији метод. ЈаваСцрипт пружа девелоперу могућност да дефинише своју функцију да би радио са сваким елементом низа. Не постоји концепт 'прекида', то јест, за сваког треба сматрати операцију на свим елементима низа.

  • аДата.форЕацх (функција (вал, инд, арр) {...});

овде 'вал' је елемент, 'инд' је његов индекс, а 'арр' је стварни низ 'аДата'. Функција може извести све радње на елементима низа. Ако има одређено значење, то ће бити рад програмера, а не синтакса језика, то јест, низ ће имати не само садржај, већ и операције које су му доступне у складу са својом сврхом у општем контексту алгоритма.

Беионд синтак

Користећи низ ЈаваСцрипт објеката, можете ићи даље од синтаксе. Формално, свака променљива објекта и свака конструкција њене методе лежи у синтакси језика, али у контексту објектно оријентисаног програмирања, настаје системски ефекат - нови квалитет који нуди сопствену синтаксу: “независни” односи између објеката.

Класични концепт развоја софтвера: превођење формалног алгоритма у конкретне синтактичке конструкције језика. На сваком месту кода постоји ригидна веза са оним што се десило са овим местом и шта ће се десити после њега.

јавасцрипт ремове арраи елемент

Објектно оријентисана формула изгледа радикално другачије. Постоје објекти који имају садржај и својства. То је оно што обезбеђује однос (код који их примењује) објеката међусобно. Ниједан код изван ових односа не би требао бити.

У ЈаваСцрипт-у, елемент поља и механизам приступа имају оригинални контекст. Сви елементи су еквивалентни, али последњи је посебан. Низ није објекат, али гледањем низа кроз призму његовог последњег елемента, у контексту његовог механизма приступа, можете добити објекат који мења његову суштину и својства - ово је важан пропуст постојећег (модерног) концепта објектно оријентисаног програмирања, индиректно имплементираног од стране програмера јавасцрипт лангуаге.

Јавасцрипт поље: креирање

Идеална и лепа конструкција низа:

  • вар аДата = []; // у суштини увек низ;
  • вар аДата = {}; // по садржају, могуће асоцијативни низ;

Можете написати и више "интелигентно":

  • вар аДата = нев Арраи ();

или врло "ноторна":

  • вар аДата = нев Арраи (13).

ЈаваСцрипт не инсистира на обавезном навођењу броја елемената и не намеће правила која се односе на индексирање, величине или типове елемената. На овој једноставној основи, не препоручује се да се њихова права злоупотребљавају ограничавањем: сва поља треба да буду представљена и коришћена што је више могуће слободно.

Користите низове

Сваки елемент низа има индекс - нумеричку вредност од 0 до 2 32 , али не треба приступити тој цифри. Практичан и прагматичан ЈаваСцрипт низ је десетине, стотине, хиљаде елемената, али не више. Ако вам је потребно више, боље је прво ревидирати алгоритам или технички задатак, а ако се ништа не деси, онда се у дубинама претраживача могу дизајнирати само вишемилионске масивне структуре.

јавасцрипт арраи ленгтх

Индекси поља нису увек конзистентни. У ЈаваСцрипту, уклањање елемента матрице значи прављење „рупе“ у њему. У процесу коришћења низа може се претворити у “сито” индекса, што не утиче на његове перформансе, сигурност других елемената.

ЈаваСцрипт је лишен концизног ПХП конструкта: $ аДата [] = "нови елемент"; и предлаже да се стриктно наведе шта се додаје и у ком се елементу (са којим индексом) вредност мења. Тип ставке није важан. Низ може садржати све што је дозвољено синтаксом, било којим редослиједом и асортиманом.

Пусх () и поп () методе елиминишу недостатак "$ аДата [] = ...", али привлаче пажњу програмера на идеју последњег елемента и подсећају вас на концепт стог. Сличан пар метода - унсхифт () и схифт () - ради са првим елементом низа, пребацујући остале елементе ка великим индексима.

Пример кода, ауторски уметак, а не цртање

За јавасцрипт, дужина низа је релативни концепт. Он не увек одражава стварни број елемената, и, везан за методу дужине, на пример, у петљи, увек треба да проверите да ли елемент са траженим индексом заиста постоји.

Димензија поља

Системи су "увек једнодимензионални", али сваки систем се састоји од унутрашњих подсистема, и сам је део нечега више глобалног. Као и општи концепт система, у ЈаваСцрипт-у нема дводимензионалног низа, али се лако може креирати додавањем других низова као елемената низа.

Пример кода, ауторски уметак, а не цртање

Индексација унутрашњим низовима се формира на природан начин: "аДата [и] [ј] ... [з]", али идеја је увек пожељнија:

  • вар аЕлемент = аДата [и]; // бира интерни низ;
  • аЕлемент [ј] = ...; // користи интерни елемент низа.

У ЈаваСцрипту је дозвољено додавање променљиве било ког типа и било ког реда у низ. Такође можете додати нешто интерном низу по општим правилима. Да бисте приступили елементима, можете користити низ [] заграда, али је увек пожељно извршити прерасподелу, ограничену на само један пар [] у сваком изразу.

Вишедимензионални ЈаваСцрипт низови - у реду је синтаксу и прилично је примјењива у пракси. Али, као иу другим језицима, најбоље је када су димензије мање и читљивост кода већа. Програми су, наравно, писани за компјутере, преводиоце и преводиоце, али људи их пишу, људи их прате, а што је већа доступност кода за аутора и треће стране, практичнији је.

Додајте и уклоните ставке

ЈаваСцрипт синтакса вам омогућава да додате елементе у низ једноставним креирањем новог индекса:

  • аДата [3] = "нека вредност";
  • аДата [100] = "последња ставка".

Након ових ЈаваСцрипт наредби, аДата низ ће имати 101 елемент. Нумерација почиње од индекса 0. За методу дужине није битно колико је елемената било у низу у време извршавања “аДата [100] = ...;”.

сортирање јавасцрипт поља

Да бисте уклонили елемент поља у ЈаваСцрипту, можете користити његове методе поп () или схифт (). У првом случају, резултат вар ласт = аИнфо.поп () ће бити 'лубеница', ау низу ће остати 'јабука', 'крушка', 'мандарина'. У другом случају вар вар = аИнфо.схифт () ће бити 'јабука', а преостали елементи ће се померити на почетак.

Ова опција је веома ефикасна када је низ ЈаваСцрипт објеката објект промене семантике и садржаја. Механизам узорковања елемента са његовим уклањањем вам омогућава да користите тренутни елемент низа и идете право на следећи. Као у стацку: узет из стог, кориштен - и добио је приступ сљедећем елементу.

Када користите ЈаваСцрипт оператер, можете обрисати елемент низа на следећи начин:

  • обришите аИнфо [1].

Након извршавања ове наредбе, елемент ће заправо остати у низу, али ће његова вриједност бити 'недефинирана'. Користећи методу слице, матрица ЈаваСцрипта може се "поделити":

  • аДата = аИнфо.слице (0, 2).

Оригинални аИнфо низ ће остати непромењен, и само ће јабука и крушка пасти у податке. Ако пишете:

  • аДата = аИнфо.слице (2);

онда само 'мандарина' и 'лубеница' остају у низу података.

Сортирај, стрингове и елементе низа

ЈаваСцрипт операције: сортирање низа, конвертовање низа у низ, формирање низа из низа, и промена редоследа елемената је најтраженији. Ове операције се изводе користећи методе:

  • сортирање (сортирање елемената),
  • придружи се (конвертуј низ у низ),
  • сплит (претвори стринг у низ),
  • преокренути (променити редослед елемената).

Ово су најзанимљивији и најкориснији алати за обраду низова и низова. Интересантна особина: за ЈаваСцрипт, елемент низа и стринг су специфичне комплементарне особине. Ако не узмемо у обзир карактеристичне карактеристике модерних језика: свака променљива је увек стринг, то јест, увек се може сматрати стрингом, а трансформација низа у стринг и назад је веома популарна и ефикасна операција.

јавасцрипт дводимензионални низ

Употреба споја / сплит парова је посебно оригинална: јединство елемената низа у низ се појављује на једном граничнику (често празан, тј. Елементи се спајају у један низ), а инверзна трансформација у низ се изводи на другом граничнику.

Пример кода, ауторски уметак, а не цртање

Ако не узмете у обзир имплементацију метода спајања и раздвајања, употреба овог пара вам омогућава да креирате одличне алгоритме.

Функција реверсе () се примењује директно на низ и мења редослед елемената у њему. Функција сорт () сортира елементе у изворном низу, враћа резултате сортиране по абецедном реду.

Ако проследите функцију као параметар за сортирање (функција (а, б) {...; повратни резултат;}), можете контролисати редослед сортирања користећи сопствени алгоритам. Таква функција треба да врати '0' ако су 'а' и 'б' еквивалентни, '-1' - ако 'а' треба да претходи 'б' и '1' - ако 'б' треба да претходи 'а'.

Ако нема шансе да се добије погрешан резултат у односу на функцију реверзног (), онда је у односу на сортирање алгоритам његовог извршења и тестирања писаног кода од суштинског значаја. Ово је посебно важно запамтити. када низ садржи знакове (низове) националне абецеде.

Паметни низови и сопствени индекси

За ЈаваСцрипт, асоцијативни низ је примитивни облик објекта. Једноставно нема метода, али постоји само пар "кључа" и "вредности". Пар завојитих заграда се користи за означавање таквог низа.

Пример кода, ауторски уметак, а не цртање

У овом примеру, користи се низ цСортЦолс, чији елементи узимају три вредности:

  • '' - без сортирања;
  • 'у' - сортирај узлазно (горе);
  • 'д' - сортирање у опадајућем редоследу (доле).

Међутим, у зависности од тога шта је тачно сортирано (у овом примеру, сајт је дизајниран за превоз путника на минибусима): путници, превозници, аутобуси или градови. Због тога је у табелама елемената дозвољено сортирање само по специфичним колонама. Стога, на свакој специфичној страници, цСортЦолс низ има специфичан садржај: цУсерсСорт, цЦомпаниесСорт, цБусесСорт, или цЦитиесСорт.

Креирање асоцијативног поља у ЈаваСцрипт-у може ићи много даље. Наведени примјер сортирања је посебно рјешење врло специфичног задатка: излаз из ситуације када властита ЈаваСцрипт функција (сортирање) није примјењива.

Структуре података су веома добре, а коришћење варијабилних скупова је веома непрактично. Али нико не забрањује употребу назива променљивих као индекса. Низ у којем су индекси представљени именима варијабли је дивна мобилна податковна структура. Не мора нужно имати све показатеље, али ће на сваком мјесту програма бити у правој композицији.

Програмер може дизајнирати паметне низове који одражавају праве структуре података на правом мјесту. У исто време, могуће је да се не настави са пуним коришћењем објеката, само да се искористе њихове могућности у фази описивања структуре и садржаја података.

Вежбајте рад са низовима

За разлику од серверских језика, у којима је увек јасно шта процесирати и шта би требало да буде резултат, ЈаваСцрипт захтева специфично вишеразинско размишљање. Страница сајта може да изазове неочекиване догађаје у скриптама и позиве. Чак и када је технички задатак за градилиште изведен на идеалан начин, а дијалог са посетиоцем не може ићи изван утврђених граница, изненађења се дешавају.

јавасцрипт адд то арраи

Карактеристична карактеристика ЈаваСцрипт-а је да елемент странице може да активира одређени процес. Као резултат, одређени подаци, низови, објекти ће бити промењени. Други процес треба да има идеју о томе шта се променило.

У идеалном случају, процеси треба да се осликавају на објектима и низовима тако да сваки догађај, који иницира један процес, предодређује све што је неопходно за све остале процесе који зависе од њега.

Не можете да прихватите објектно оријентисано програмирање и да се не трудите да обезбедите да све странице сајта буду опремљене потпуно опремљеним системима објеката који сами улазе у односе и да не постоји ниједна линија кода изван метода таквих објеката, већ чак иу случају искључиво класичног стила развоја. ЈаваСцрипт низови, посебно асоцијативни и наоружани скупови имплементација функције форЕацх, одличан су алат за поуздан и практичан код.