JavaScript масивите се използват за съхраняване на множество стойности на едно място. Те са едно от най-важните неща в програмните езици.
Масивите
В този урок ще използваме скрипт за да покажем масив в HTML елемент:
На първия ред (в скрипта) създаваме масив наречен автомобили.
Вторият ред „намира“ елемента с id = „demo“ и „показва“ масива в „innerHTML“ на елемента. Създаване на масив, и определяне на стойности за него:
Празни места и нови редове не са важни. Декларацията може да се раздели на няколко реда:
Да не се поставя запетая след последния елемент (подобно на „BMW“,). Това се разбира различно от различни браузъри.
Какво е масив в езика JavaScript?
Масивът е специална променлива, която може да побере повече от една стойност в себе си. Ако имате списък на позициите (списък с имената на автомобили, например), съхранението на колите в единични променливи може да изглежда така:
Но ако искате чрез цикъл да обработите всеки елемент? Или ако имате 300 коли? Отговорът е масив! Масивът може да побере много стойности под едно име, и ще можете да получите достъп до стойностите, като се позовавате на поредните им номера.
Създаване на Масив
Създаването на масив е лесно – използваме квадратните скоби или някоя от вградените ключови думи. Синтаксис в езика JavaScript за създаване на масив:
Използване на JavaScript Ключовата Дума new
Следващият пример създава масив, и задава стойности за него:
Двата примера по-горе правят едно и също нещо. Не е необходимо да се използва new Array(). За простота, четливост и скорост на изпълнение, се използва първият метод.
Достъп до елементите на масив
Може да прихващаме елементите на масива по техния индекс. Чрез следващата заявка взимаме първия елемент от myCars:
А тази заявка го модифицира:
[0] е първият елемент в масив. [1] е втория. Array индексите започват с 0.
Вие може да имате различни обекти в One Array
JavaScript променливи могат да бъдат обекти. Масивите са специални видове обекти. Поради това, че може да има променливи от различни видове в една и съща масив. Вие може да имате обекти в масив. Вие може да имате функции в Array. Можете да имате масиви в масив:
Масивите са обекти
Масивите са особен вид обекти. typeof операторa в JavaScript връща „обект“, когато се използва за масиви. Масивите използват индекси за достъп до техните „елементи“. В този пример, person[0] връща John:
Масив(Array):
Обектите използват имена за достъп до своите „членове“. В този пример, person.firstName връща John:
Обект(Object):
Свойства и методи
Истинската сила на JavaScript масивите са вградените свойства и методи:
Методите за работа с масиви са покрити в следващата глава.
Свойството length
То връща дължината на масив (броя на елементите на масива).
Това свойство винаги е равно на индекса на последния елемент + 1.
Добавянето на елементи в масив
Един от най-лесните начини за добавяне на нов елемент в масив е да се използва свойството на дължина. Друг вариант е да използвате вградена функция за това:
Добавяне на елементи с високи индекси може да създаде недефинирани „дупки“ в масива:
Цикли и Масиви
Най-добрият начин за обхождане на елементите на масив е чрез цикъл:
Примерът по-горе изглежда, че работи. Но това не е така.
Ако го опитате, person[“firstName“] ще върне John, но person[0] ще върне undefined, a person.length ще върне 0.
Ако искате да създадете асоциативен масив, се създава обект.
Кога да използвате масиви? Кога да използвате обекти?
- JavaScript не поддържа асоциативни масиви.
- Вие трябва да използвате обекти, когато искате имената на елемента да са стрингове.
- Вие трябва да използвате масиви, когато искате имената на елемента да са последователни номера.
Избягвайте методът newArray().
Не е необходимо да използвате вградения в масив конструктор new Array на JavaScript.
Използвайте []
вместо това.
И двете създават еднакви масиви:
Тези две различни заявки, създават нов масив, съдържащ 6 числа:
new
думата усложнява вашия код и понякога произвежда лоши странични ефекти:
Какво става, ако се премахне един от елементите?
Как да разпознаете Array?
Един общ въпрос е: Как мога да разбера дали дадена променлива е масив?
Проблемът е, че операторът на JavaScript typeof
връща „обект“:
typeof връща обект, защото JavaScript масивите са обекти. За да се реши този проблем, можете да създадете своя собствен isArray() функция:
Функцията по-горе винаги ще върне true, ако аргументът е масив. Или по-точно: функцията връща истина, ако обект прототипа на аргумента е „[object array]“.