JavaScript, масиви: описание

javascript е модерен език за програмиране, уникален по отношение на синтаксис и семантика. Тя има специфики, но е лесна за използване и ефективна, когато става въпрос за разработване на динамичен и надежден мрежов ресурс.

[img] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_681.jpeg
javascript array - модерна форма на представяне на данни, която се различава от подобни структури на други езици. Опитът при подаване и обработване на информация за javascript винаги е бил значителен. Тук, в браузъра, работи диалогът с клиента. Тук е важно бързо да се разглоби ред информация от сървъра и да се боядисва с необходимите тагове. Сървърните езици формират съдържанието и структурата на страниците, но правилното им използване на езика на браузъра.

Представяне на информация: променливи и данни

Професионалният разработчик използва променливи в простите случаи, когато "прави" за () {}, "контролира" докато () {}, "използва" design switch () {case "" :}, Във всички останали случаи информацията е представена от структури от данни.

[thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_102.jpeg
Рядко достатъчно данните са представени от прост набор от променливи. Това е статична структура, която е обединена от еднаквост при именуването и използването. Работата с набори от променливи е ограничена от количеството предоставена информация, така че се използва за прости алгоритми и за локални функции. javascript array е по-динамичен и обемен вариант на променливата, когато е структура от данни. Чрез индексиране на масив, например по линия на стойности, време или друг параметър, можете да имате различно съдържаниеза всеки индекс. Масивът може да бъде набор от (специфични структури) от променливи, които, поставени в друг масив, ще представят динамиката на такава структура чрез параметър или време. И накрая, можете да създадете масив от обекти или система от обекти - концептуална комбинация от данни, имаща структура, съдържание и набор от методи, които "сами по себе си" разкриват съответните свойства.

Във всички случаи информацията изглежда твърда, формална и достъпна за обработване с помощта на езика. Само ако кодът манипулира "самата система" на обекти и не позволява нито един дизайн извън метода на даден обект, можем да кажем, че има възможност да се обработи и създаде информация, която не е формализирана или формализирана в процеса на изпълнение алгоритъм.

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

В първото приближение на javascript масива е подобен на синтактичните структури на други езици. Семантиката също е еквивалентна, с изключение на формите на нейното изразяване. Можете да използвате синтаксиса и семантиката на javascript и успешно да решите всяка сложна задача.
[палец] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_383.jpeg
Шансовете за постигане на пълна преносимост на кода и адаптирането на създадения ресурс към променящите се условия на приложение, адекватен отговор на всяка непланирана промяна във входящата информация и правилата за нейната обработка, няма, но почти всяка задача, която може да постави модерен клиент, може да бъде успешно решена. Стандартният синтаксис на езика дефинира javascript масивите, функциите и методите, доста големи, но на практикаОбикновено се използва само част.
[thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_264.jpeg
forEach - най-интересният метод на масива. javascript предоставя на разработчика да дефинира собствената си функция за извършване на работа с всеки елемент от масива. Няма представа за „прекъсване“, тоест, заВсеки трябва да се разглежда като операция върху всички елементи на масива.
  • aData.forEach (функция (val, ind, arr) {});
  • Тук 'val' е елемент 'ind' - неговият индекс, а 'arr' всъщност е масивът 'aData'. Функцията може да извършва всякакви действия върху елементи на масива. Ако има някакво значение, то ще бъде операция на разработчика, а не синтаксис на езика, т.е. масивът ще има не само съдържание, но и операции, които са достъпни за него в съответствие с нейната цел в общия контекст на алгоритъма.

    Извън синтаксиса

    Използването на масив от обекти на javascript може да надхвърли синтаксиса. Формално, всяка обектна променлива и всяка структура на нейния метод се намира в синтаксиса на езика, но в контекста на обектно-ориентираното програмиране има системен ефект - ново качество, което предлага свой собствен синтаксис: "независими" отношения между обектите. Класическата концепция за разработване на програми: преводът на формалния алгоритъм в специфични синтактични структури на езика. На всяко място в кода има тясна връзка с това, което е било преди това място и какво ще се случи след него.


    [палец] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_475.jpeg
    Обектно-ориентираната формула изглежда фундаментално различна. Има обекти, които имат съдържание и свойства. Това е, което осигурява връзката (кода, който те изпълняват) обекти един с друг. Няма кодтази връзка не трябва да бъде. В javascript, елементът на масива и механизмът за достъп до него имат оригинален контекст. Всички елементи са еквивалентни, но последният е специален. Масивът не е обект, но като се има предвид масив през призмата на последния му елемент, в контекста на механизма за достъп до него, може да се получи обект, който променя неговата същност и свойства - това е значително пропускане на ситуационната (модерна) концепция на обекта. Ориентирано програмиране, косвено реализирано от разработчиците на javascript езика.

    javascript array: създаване

    Идеален и красив масив за създаване на структура:
  • var aData = []; //по същество винаги е масив;
  • може да aData = {}; //в съдържанието си, може би асоциативен масив;
  • Можете да пишете все повече и повече "интелектуално":
  • var aData = new Array ();
  • или доста "сложно":
  • var aData = new Array
  • .
  • javascript не настоява за задължително посочване на броя на елементите и не налага правила за индексиране, размер и тип на елементите. По тази проста причина не се препоръчва да се злоупотребява с техните права, като ги ограничаваме: всички масиви трябва да бъдат представени и използвани по най-безплатен начин.

    Използване на масиви

    Всеки елемент на масив има индекс - цифрова стойност от 0 до 2 32, но не трябва да приближава тази цифра. Практичният и прагматичен JavaScript масив е десетки, стотици, хиляди елементи, но не повече. Ако имате нужда от повече, по-добре е първо да разгледате алгоритъма или техническата задача, и ако нищо не се случи, само тогава ще можете да проектирате многомилионна масивна структура в дълбините на браузъра.
    Индексите на елементите на масива не винаги са съгласувани. В javascript, изтрийте елемент от масив - това означава да го направите "дупка". В процеса на използване на масива може да се превърне в "сито" на индексите, което не засяга способността му да работи, спестявайки други елементи. javascript лишен от лаконичен PHP дизайн: $ aData [] = "нов елемент"; и предлага твърда индикация за това какво се добавя и в кой елемент (с кой индекс) се променя стойността. Типът елемент не играе роля. Масивът може да съдържа целия допустим синтаксис, в който ред и асортимент. Методите push () и pop () премахват недостатъка на "$ aData [] =", но привличат вниманието на разработчика към идеята за последния елемент и напомнят концепцията за стека. Подобна двойка методи - unshift () и shift () - работи с първия елемент на масива, като измества други елементи към по-големи индекси.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_437.jpeg
    За javascript, дължината на масив е относително понятие. Той не винаги отразява действителния брой елементи, а когато се обвързва с метода на дължината, например в цикъл, винаги трябва да проверяваме дали има елемент с правилния индекс.

    Размерът на масива

    Системите са "винаги едномерни", но всяка система се състои от вътрешни подсистеми и сама по себе си е част от нещо по-глобално. Подобно на общата концепция за системите, javascript не е двуизмерен масив, но може лесно да бъде създаден чрез добавяне на други масиви като елементи от масива.
    [img] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_268.jpeg [/img]
    Индексирането за вътрешни масиви се генерира естествено: "aData [i] [j] [z]", но винаги по-добра идея:
  • var aElement = aData [i]; //изберете вътрешния масив;
  • aElement [j] =; //използваме елемента на вътрешния масив.
  • В javascript, добавете всяка променлива във всеки масив, позволен в масива и в какъв ред. Можете също да добавите във вътрешния масив съгласно общите правила. За да получите достъп до елементите, можете да използвате последователността на скобите [], но винаги е по-добре да пренасочите, ограничено до само един чифт [] във всеки израз. Многомерните javascript масиви са нормални, осигурени от синтаксиса и могат да се прилагат напълно на практика. Но, както и в други езици, най-добре е, когато измерванията са по-малко, а четимостта на кода е по-висока. Програмите, разбира се, са написани за компютри, преводачи и компилатори, но те пишат хора, които също придружават хората, и колкото по-голям е кодът за автора, така и за трета страна, е по-практичен.

    Добавяне и изтриване на елементи

    Синтаксисът на javascript ви позволява да добавяте елементи към масив, като просто създавате нов индекс:
  • aData
    = "някаква стойност";
  • aData [100] = "последен елемент".
  • След тези оператори, масивът javascript aData ще има 101 елемента. Номерирането започва с индекс 0. За метода на дължината няма значение колко елементи всъщност са били в масива по време на изпълнението на "aData [100] =;".
    За да премахнете елемент от масив в javascript, можете да го направите използвайте неговите методи pop () или shift (). В първия случай резултатът може да е последен = aInfo.pop () „диня“, но в масива той ще остане: „ябълка“, „круша“, „мандарина“. Във втория случай var first = aInfo.shift () 'apple', докато другите елементи се преместват в началото. Тази опция е много ефективна, когато масив от обекти на javascript е обект, който променя семантиката и съдържанието. Механизмът за избор на елемента с неговото отстраняване ви позволява да използвате текущия елемент на масива и веднага да преминете към следващия. Както в стека: взето от стека, използван - и има достъп до следващия елемент. Когато използвате javascript оператора, можете да изтриете елемент от масив по следния начин:
  • изтрийте aInfo

    .
  • След изпълнението на този оператор, елементът в самия случай ще остане в масива, но неговата стойност ще бъде "неопределена". Използвайки метода на среза, скриптът на javascript може да бъде "изрязан":
  • aData = aInfo.slice (0 2).
  • Оригиналният масив на aInfo ще остане непроменен и само "ябълка" и круша ще попаднат в данните. Ако пишете:
  • aData = aInfo.slice
    ;
  • тогава в масива aData ще има само "мандарина" и "диня".

    Сортиране на редове и елементи от масива

    операции на JavaScript: сортиране на масиви, преобразуване на масиви в ред, формиране на масиви и промяна на реда на елементите, които са най-търсени. Изпълнението на тези операции се извършва с помощта на методите:
  • sort,
  • съединяване (преобразуване на масив в низ),
  • разделяне (преобразуване на низ в масив),
  • обратен (пренареждане на артикули).
  • Това са най-интересните и използвани инструменти за обработка на масиви и низове. Интересна характеристика: за javascript, елемент от масив и низ са особени допълващи качества. Ако не разгледаме характерната черта на съвременните езици: всяка променлива е винаги линия, тоествинаги може да се разглежда като низ, след което преобразуването на масив в ред и обратно е много популярна и ефективна операция.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_9910.jpeg
    Особено оригинално използване на join /split: комбинирането на елементи от масив в низ се осъществява с единичен разделител (често празен, т.е. елементите се сливат в един ред), а обратното преобразуване в масив се извършва от друг разделител.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_4811.jpeg
    Ако не вземете предвид прилагането на методите за сливане и разделяне, тогава използването на тази двойка ви позволява да създавате големи алгоритми. Функцията reverse () се прилага директно към масива и променя реда, в който елементите са последвани от обратната. Функцията sort () сортира елементите в изходния масив, връща сортираните по азбучен ред резултати. Ако като параметър в sort (функция (a, b) {; return return;}) за прехвърляне на функция, можете да контролирате реда на сортиране по свой собствен алгоритъм. Тази функция трябва да върне '0', ако 'a' и 'b' са еквивалентни '-1' - ако 'a' трябва да предхожда 'b' и '1', ако 'b' трябва да предшества 'a'. Ако обратното () няма шанс да получи правилния резултат, тогава сортирането има алгоритъм със значителна стойност за неговото изпълнение и тестов писмен код. Особено важно е да запомните това. когато масивът съдържа символи (редове) на националната азбука.

    Интелигентни масиви и собствени индекси

    За javascript асоциативният масив е примитивна форма на обект. Тук просто няма методи, но има само "ключови" и "стойностни" двойки. За да обозначим товаизползва се масив от фигурни скоби.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_5212.jpeg
    Този пример използва масив от cSortCols, елементи която взема три стойности:
  • "- без сортиране;
  • " u "- сортиране във възходящ (нагоре);
  • 'd' - сортиране надолу.
  • Въпреки това, в зависимост от сортирането е сортирано (в този пример сайтът е разработен за пътнически трафик по маршрути): пътници, превозвачи, автобуси или градове, затова таблицата на артикулите може да бъде сортирана само по конкретни колони. Съществува специфично съдържание: cUsersSort, cCompaniesSort, cBusesSort или cCitiesSort.Създавайки асоциативен масив в javascript, можете да отидете много по-далеч.Следният пример за сортиране е частен solver за много частна задача: излизане от ситуация, в която не се прилага вашата JavaScript (sort) функция. - това е много добро и използването на набори от променливи е много непрактично. Но никой не забранява използването на имена на променливи като индекси. Масив, в който индексите са представени от имена на променливи, е страхотна мобилна структура от данни. Не е задължително да имат всички индекси, но във всяко място те ще бъдат в правилния ред. Разработчикът може да проектира "умни" масиви, които ще показват необходимите структури от данни на правилното място. В този случай, не можете да отидете на пълноценно използване на обекти, просто използвайте техните възможности на етапа на описване на структурата и съдържанието на данните.

    Практиката на работа с масиви

    За разлика от сървърнитеезици, които винаги са ясни какво да се обработва и какъв трябва да бъде резултатът, в javascript изисква специфично мулти-ниво мислене. Страницата на сайта може да генерира събития и извиквания на скриптове по най-неочакван начин. Дори когато техническата работа на обекта е перфектно изпълнена, а диалогът с посетителя не може да излезе отвъд установената рамка, се случват инциденти.
    http://hi-news.pp.ua/uploads/posts/2017-03/javascript-masivi-opis-sylru_1713.jpeg
    Характерна особеност на javascript е, че елементът е страниците могат да активират един или друг процес. В резултат на това някои данни, масиви, обекти ще бъдат променени. Друг процес трябва да има представа за това какво е променено. В идеалния случай, процесите трябва да се рисуват върху обекти и масиви по такъв начин, че всяко събитие, иницииращо един процес, определя всичко, което е необходимо за всички други процеси, зависещи от него. Възможно е да не се приветства обектно-ориентираното програмиране и да не се стреми да гарантира, че всички страници на сайта са снабдени с пълнофункционални системи от обекти, които сами по себе си взаимодействат помежду си в една връзка и няма единствен ред от код извън методите на такива обекти, но дори Случаят с изключително класическия стил на разработване на javascript масиви, особено асоциативен и въоръжен с реализации на функцията forEach, е чудесен инструмент за надежден и практичен код.

    Свързани публикации

    Многоизмерни, асоциативни JavaScript масиви. Работа с JavaScript масиви JS масиви. JS обект. Многоизмерни JavaScript масиви Използвайте indexOf (JavaScript) при работа с масиви и низове PHP: Масиви в низ. Конвертиране на редове в масиви и обратно Какво е Java различен от Javascript? Сравнение на Java и JavaScript JavaScript /стек на JavaScript