Javascript масив и неговото творение
Основните архитектурни особености на този продукт са динамични и слаб пишете, avtoupravlenie памет идеален функции за програмиране, които са обекти на първото освобождаване.
Какво е масив?
солидна производствена
- VAR празни = []; // празен масив;
- VAR numers = [4, 1, 2, 5]; // масив с цифрови пет компоненти;
- Var разл = [1.5, невярно, «текст"]; // масив с три елемента на различни видове.
Като правило, не е необходимо да бъдат прости ценности (редове и цифри). Той може да бъде всякакви други изрази, например, обект литерали, други функции и масиви.
Вторият начин да се създаде дизайнер масив е да се обадите Array (). За да го покани на един от трите метода:
Записване, четене и добавяне на детайли на масива
Дължината на масива
За да се покаже на крайния елемент на масив, можете да използвате дължина имота.
Преминаване на масива на части
Много често, собственост на дължина се използва за обхождане на масива на части от цикъла:
- VAR плодове = [ «ягоди", "праскова", "ябълка", "банан"];
- за (Var I = 0; и
- document.write (плодове [Ь] + «.»).
В този пример става ясно, че компонентите са разположени непрекъснато и започват с първата част, която държи индекс нула. Ако това не е така, преди да се обадите на всеки елемент на масива трябва да се провери, ако е дефиниран.
Цикълът е също така понякога се използва за инициализиране на компонентите.
Увеличението и отрязване масив
Много просто изчистване на масива като: foo.length = 0.
Ако качеството на продължителността на протичане на по-голяма от сегашната си стойност в края на масива ще бъдат нови, неидентифицирани компоненти, които ще ги увеличат до желания размер.
Изтриване на масив от данни
многомерни масиви
асоциативни масиви
Изходна масив
Ако програмата, която искате да се показва стойностите на всички компоненти, а след това е удобно да се прилагат указанията за. Интересното е, че правилата за променливо-брояч за използване в същото време, тъй като компонент на индекса на масива.
Добавяне и премахване на компоненти
- При добавяне на цифрови неизвестни свойства и, ако е с дължина, равна на или по-малко, отколкото, дължина е определено за I + 1.
- Когато промените качеството на дължина, за да изпълните следните стъпки: въведена стойност е по-малка от нула, а след това хвърля RangeError. Елиминира всички числови качествени показатели, които са равни на новата дължина, и по-голяма, отколкото.
unshift методи, промяна, поп и натиснете
Въпреки факта, че компонентите на масива се сменят ръчно, много препоръчваме да използвате тези вградени методи. Именно този нюанс гарантира правилната стойност на качеството и липсата на дължина в проходите масива. Между другото, качеството на необходимата дължина ще съответства на броя на компонентите.
Процесът се движи, за да натиснете края на елементите на масив предава. Поп обратно процес дава крайната компонент и го премахва.
Като цяло в Internet Explorer под осмата версия unshift може да се върне неопределено, което в други браузъри - новата стойност на дължина. Така че върнатата стойност от unshift-добре да не се надяваме.
Добавянето и премахването на части в средата на масива
Той се оттегли от компонентите на масив deleteCount, като се започне с индекса на старт. Ако мине повече от два аргумента, всички последващи аргументи в масива са разположени на мястото на ликвидация. Ако старт е минус, индексът, в който да се възобнови оттеглянето ще е равна на дължината + започне. Връщайки се към масива на дистанционни елементи се извършва.
Всъщност, като се използва метода на снаждане, че е възможно да се отстранят частите от средата на масив или да добавите произволен брой навсякъде в масива.
В най-простия вариант на изпълнение, ако е необходимо да се отстрани компонент с индекс I, масива трябва да поиска метод сплайс с параметри I и едно.
По принцип вторият вариант на метода на снаждане не е задължително, но поведението на функцията с един аргумент за всеки браузър е различен.
Така например, в Firefox, Opera през последните варианти, всички детайли преди края на масива ще бъдат премахнати в Safari и Chrome.
нито един компонент се елиминира в IE. В първия вариант е невъзможно да се предскаже поведението на Opera - ще бъде премахнат един елемент с индекс старт - 1. Поради това винаги е необходимо в този метод за предаване на най-малко два компонента.
- INSERT (стойност, ключ).
Смята се, че в асоциативен масив, не може да спаси двете двойки с подобни ключове. В няколко к + V V е стойността, свързана с ключ к. Семантиката и тук с горните операции в различни реализации на тези масиви могат да бъдат различни.
По този начин, да намерите работа (ключ) връща стойност, свързана с даден ключ, или конкретен обект UNDEF, което означава, че стойността, свързана с даден ключ, офлайн. Две други действия не се връщат (с изключение на данни за това дали операцията е била успешна).
Като цяло, по отношение на интерфейс, асоциативен масив, който се счита като обикновен масив, където като индекси може да се прилага не само цели числа, но други видове и ценности - например, линии.
Свързани удължаване
Трябва да се отбележи, че най-добре познатите разширения включват следното:
- ВСЕКИ - «разходка» на всички спестява двойки.
- CLEAR - за да изтриете всички записи.
- MIN - да се намери един чифт с най-ниската стойност на ключа.
- MAX - да се намери един чифт с най-голямата стойност на ключа.
В последните два случая трябва да се върху клавишите посочено сравнение ефект.
Реализация на асоциативни масиви
Има много различни реализации на асоциативен масив. Най-често срещаният изпълнението може да се основава на една проста масив, чиито елементи са (ключът стойност) на двойки. За да се ускори функциите за търсене, можете да подредите компоненти на масива от най-важните открития и прилагат с помощта на двоичен търсене. Но това ще се увеличи размерът на времето, необходимо за да добавите нов чифт, тъй като ще трябва да "остави" компонентите на масив, появили се в празна клетка да се опаковат свеж рекорд.
Най-известният изпълнение, въз основа на различните търсещи дървета. Например, в един типичен читалня STL C ++ езикови Трейлъри карта се осъществява въз основа на черно и махагон. В Ruby, стилове, Tcl, Python използва един вид хеш таблици. Има и други изпълнение.
По принцип, всеки изпълнение има своите предимства и недостатъци. Важно е, че и трите операции са изпълнени средно, и в най-лошия период на нюанс около (влезте н), където п - ток номер, за да спаси ал. За съгласувани търсене дървета (включително черно и червено дървета), това условие е изпълнено.
Известно е, че в приложения, базирани на хеш таблици, средното време, се определя като D (1), което е по-добре, отколкото в действията, основани на дърветата от търсенето. Разбира се, това не е гаранция за изпълнение високоскоростен на отделни операции: INSERT време за действие в най-лошия случай, обозначена като O (N). процес INSERT се извършва в продължение на дълъг период от време, когато съотношението на дълг достига най-високата точка, а има нужда да се възстанови индекса на хеш-таблица.
Между другото, тези изявления хеш лоши, че на тази основа е невъзможно да се извърши бързо предприемане на допълнителни действия MAX, MIN, и алгоритъм за търсене в спестява двойки в низходящ ред възходящ или ключове.