Масивите в езикът JavaScript – видове и типове

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.


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

Един от най-лесните начини за добавяне на нов елемент в масив е да се използва свойството на дължина. Друг вариант е да използвате вградена функция за това:

Опитайте сами »

Добавяне на елементи с високи индекси може да създаде недефинирани "дупки" в масива:

Опитайте сами »

Цикли и Масиви

Най-добрият начин за обхождане на елементите на масив е чрез цикъл:

Опитайте сами »

Асоциативни масиви? No Way!

Много програмни езици поддържат масиви с имена и индекси. Масивите с именувани индекси се наричат ​​асоциативни масиви (или хешове). JavaScript не поддържа масиви с именувани индекси.

 Wrong:

Примерът по-горе изглежда, че работи. Но това не е така. Ако го опитате, 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]".