* Обект масив
Публикувано на 09 септември 2009 в раздел ХHTML.
Най-общо казано обектите се създават чрез оператор new:
var <име> = new <обект>(<инициализиращи данни>);
Всеки обект си има набор от функции. Това могат да бъдат както get и set методи, така и други функции. Нека обектът Object има функция с име function. За да я достъпим ние използваме ".":
Object.function();
Възможно е едни обекти да са дефинирани в други обекти. Няма обаче да се спираме подробно на тази йерархия. Същината на обектите е в предмета на по-сериозни курсове на програмиране. Тук ще се научим по-скоро как да ги използваме практически, без да задълбочаваме в тяхната същина. В следващите няколко статии ще разгледаме няколко от най-често използваните обекти и ще дадем примери как те се употребяват.
Засега ще започнем с един от най-често употребяваните стандартни обект - масив. Обектите от този тип са с име "Array". Използва се за да можем да обединим множество от стойности под едно име. Например ако желаем да запишем под името на една променлива имената на няколко ученика, то бихме направили следното:
var students=new Array(); students[0]="Petar Petrov"; students[1]="Ivan Ivanov"; students[2]="Maria Zlateva";
Достъпът до стойността на елемент от масива става по същия начин чрез индекс на елемента му:
document.write(students[1]);
Виждате, че не е нужно да дефинираме дължината (брой елементи) на масива. Той се увеличава автоматично при добавяне на нов елемент. Ако все пак добавим число в скобите при дефиницията на масива, то ще дефинираме неговата дължина. Това се използва рядко в практиката.
Първото и основно "свойство" на масивите, което ще използваме е length, което определя тяхната дължина (брой елементи). В следния пример обхождаме горния масив и го отпечатваме на екрана, като всеки елемент е на нов ред:
for(var i=0; i<students.length; i++){ document.write(students[i]+"<br />"); }
Можем да направим частична аналогия между масив в JavaScript и вектор в C++. Наистина масивите в JavaScript са динамични и имат много сходства със стековете и списъците.
На първо място ще разгледаме функцията join(<разделител>). Чрез нея можем да обединим всички елементи на един масив в един низ. Например ето как можем да направим променлива, която съдържа всички елементи на масива разделени със запетайка:
var allstudents = students.join(", "); document.write(allstudents);
Следва типична за стековете е функцията pop(). Тя изтрива последния елемент на масива и го връща като резултат:
var laststudent = students.pop(); document.write(laststudent);
Обратната функция е push(<стойност>) - тя добавя елемент в края на масива. Удобна е, защото няма нужда да помним индекса на последния елемент:
students.push("Teodora Miteva", "Nikolay Zaprianov");
Ако искаме да обърнем елементите на масив в обратен ред, то използваме готовата функция reverse():
students.reverse();
Типична за FIFO (first in first out) списъци пък е функцията shift(). При нея се премахва първият елемент от масива и се връща като резултат:
var firststudent= students.shift() document.write(firststudent);
Обратно - ако желаем да добавим елемент в началото на масива, то използваме функция unshift(<стойност>):
students.unshift("Petko Stoianov");
Ако искаме да сортираме масив по азбучен ред, то използваме функция sort():
students.sort()
Отбелязваме, че sort() ще сортира по азбучен ред. Ако масивът се състои от числа, то те няма да бъдат подредени по големина. За целта е позволено да подаваме като параметър на функцията сорт име на друга функция - т.нар. "сортираща функция", която трябва да сравнява два елемента и да върне отрицателно число (ако първия е по-голям), 0 (ако са равни) или положително число (ако вторият е по-голям):
function sortnums(a,b){ return a-b; } nums.sort(sortnums);
Накрая ако желаем да изтрием елемент от масив, то използваме функцията splice(<индекс>, <брой елементи>). Например ако желаем да изтрием един елемент от индекс 1, то ще използваме:
students.splice(1,1);
Функцията splice може да си използва и за замяна на елементи. Ако искаме да премахнем елементи 1 и 2 и на тяхно място до поставим два нови, то ще напишем:
students.splice(1,2,"Todor Dimitrov","Irena Milcheva");
Може би се досещате вече, че по такъв начин можем и да вмъкваме елементи в масив. Ако вторият параметър е 0, то няма да бъде заменено нищо. Следният пример добавя елемент на мястото на елемент с индекс 2:
students.splice(2,0,"Petar Balabanov");
Добави коментар