Последние учебники веб-разработки
×

JS Руководство

JS ГЛАВНАЯ JS Введение JS Куда JS Вывод JS Синтаксис JS Заявления JS Комментарии JS переменные JS операторы JS арифметика JS присваивание JS Типы данных JS функции JS Объекты JS Объем JS Мероприятия JS Строки JS Методы струнных JS чисел JS Методы Number JS математический JS Даты JS Форматы даты JS Методы Дата JS Массивы JS Методы массивов JS Booleans JS Сравнения JS условия JS переключатель JS петля For JS В то время как Loop JS Ломать JS Тип преобразования JS RegExp JS ошибки JS отладка JS Подъемно JS Строгий режим JS Гид по стилю JS Лучшие практики JS Ошибки JS Представление JS Зарезервированные слова JS JSON

JS формы

Формы проверки Формы API

JS объект

Определения объектов Свойства объекта Методы объекта Прототипы объектов

JS функции

Определения функций Функциональные параметры Функция Призвание Функция Затворы

JS HTML DOM

DOM вступление DOM методы DOM Документ DOM элементы DOM HTML DOM CSS DOM Анимации DOM Мероприятия DOM EventListener DOM навигация DOM Вершины DOM Nodelist

JS браузер BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Примеры

JS Примеры JS HTML DOM JS HTML вход JS HTML Объекты JS HTML Мероприятия JS браузер JS викторина JS Резюме

JS Рекомендации

JavaScript Объекты HTML DOM Объекты


 

JavaScript Массивы


JavaScript массивы используются для хранения нескольких значений в одной переменной.


Отображение Массивы

В этом уроке мы будем использовать скрипт для отображения массивов внутри <p> элемента с id="demo" :

пример

<p id="demo"></p>

<script>
var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;
</script>

Первая строка (в сценарии) создает массив с именем машины.

Вторая строка "находит" элемент с id="demo" , и "displays" массив в "innerHTML" из него .;


Попробуй сам

Создать массив и присвоить значения к нему:

пример

var cars = ["Saab", "Volvo", "BMW"];
Попробуй сам "

Пробелы и разрывы строк не важны. Объявление может занимать несколько строк:

пример

var cars = [
    "Saab",
    "Volvo",
    "BMW"
];
Попробуй сам "

Никогда не поставить запятую после последнего элемента (например , "BMW" ,).
Эффект непоследовательным во всех браузерах.


Что такое массив?

Массив является специальная переменная, которая может содержать более одного значения одновременно.

Если у вас есть список элементов (список имен автомобиля, например), хранение автомобилей в отдельных переменных может выглядеть следующим образом:

var car1 = "Saab";
var car2 = "Volvo";
var car3 = "BMW";

Однако, что если вы хотите, чтобы перебрать автомобилей и найти конкретный один? А что, если бы вы не 3 машины, а 300?

Решение представляет собой массив!

Массив может содержать множество значений под одним именем, и вы можете получить доступ к значениям, обращаясь к номеру индекса.


Создание массива

Используя массив буквальный это самый простой способ для создания массива JavaScript.

Синтаксис:

var array-name = [ item1 , item2 , ...];      

Пример:

var cars = ["Saab", "Volvo", "BMW"];

Использование нового JavaScript ключевых слов

Следующий пример создает массив, и присваивает значения к нему:

пример

var cars = new Array("Saab", "Volvo", "BMW");
Попробуй сам "

Эти два примера выше, сделать то же самое. Там нет необходимости использовать new Array() .
Для простоты, читабельности и скорости выполнения, используйте первый (массив буквальный метод).


Доступ к элементам массива

Вы обращаетесь к элементу массива, обращаясь кномеру индекса.

Это утверждение обращается значение первого элемента в автомобилях:

var name = cars[0];

Это утверждение изменяет первый элемент в автомобилях:

cars[0] = "Opel";

[0] является первым элементом в массиве. [1] является вторым. Массив индексов начинается с 0.


Вы можете иметь различные объекты в одном массиве

Переменные JavaScript могут быть объектами. Массивы являются специальные виды объектов.

Из-за этого, вы можете иметь переменные различных типов в одном массиве.

Вы можете иметь объекты в массиве. Вы можете иметь функции в массиве. Вы можете иметь массивы в массиве:

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

Массивы являются объектами

Массивы представляют собой особый тип объектов. typeof оператор в JavaScript возвращает "object" для массивов.

Но, JavaScript массивы лучше всего можно описать как массивы.

Массивы используют numbers для доступа к его "elements" . В этом примере, person[0] возвращает John :

Массив:

var person = ["John", "Doe", 46];
Попробуй сам "

Объекты используют имена для доступа к его "членов". В этом примере, person.firstName возвращает John :

Объект:

var person = {firstName:"John", lastName:"Doe", age:46};
Попробуй сам "

Массив Свойства и методы

Реальная сила JavaScript массивов являются встроенные свойства и методы массива:

Примеры

var x = cars.length;         // The length property returns the number of elements in cars
var y = cars.sort();         // The sort() method sort cars in alphabetical order

Методы массивов рассматриваются в следующей главе.


Длина недвижимости

length свойство массива возвращает длину массива (количество элементов массива).

пример

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length;                       // the length of fruits is 4
Попробуй сам "

Свойство длина всегда больше на единицу наибольшего индекса массива.


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

Самый простой способ, чтобы добавить новый элемент в массив используется метод кнопочный:

пример

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Lemon");                // adds a new element (Lemon) to fruits
Попробуй сам "

Новый элемент также может быть добавлен в массив , используя length свойства:

пример

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Lemon";     // adds a new element (Lemon) to fruits
Попробуй сам "

ВНИМАНИЕ!

Добавление элементов с высокими показателями могут создавать неопределенные "holes" в массиве:

пример

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[10] = "Lemon";                // adds a new element (Lemon) to fruits
Попробуй сам "

Looping элементов массива

Лучший способ перебрать массив, использует "for" цикла:

пример

var fruits, text, fLen, i;

fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
    text += "<li>" + fruits[i] + "</li>";
}
Попробуй сам "

Ассоциативные массивы

Многие языки программирования поддерживают массивы с именованными индексами.

Массивы с именованными индексами называются ассоциативными массивами (или хэшей).

JavaScript не поддерживает массивы с именованными индексами.

В JavaScript массивы всегда использовать пронумерованные индексы.

пример

var person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
var x = person.length;         // person.length will return 3
var y = person[0];             // person[0] will return "John"
Попробуй сам "

ВНИМАНИЕ !!
Если вы используете именованный индекс, JavaScript будет переопределить массив стандартного объекта.
После этого, все методы и свойства массива будут выдавать неправильные результаты.

Пример:

var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
var x = person.length;         // person.length will return 0
var y = person[0];             // person[0] will return undefined
Попробуй сам "

Разница между массивов и объектов

В JavaScript массивы используют пронумерованные индексы.

В JavaScript объекты использовать именованные индексы.

Массивы представляют собой особый вид объектов, с пронумерованными индексами.


При использовании массивов. Когда использовать объекты.

  • JavaScript не поддерживает ассоциативные массивы.
  • Вы должны использовать объекты , когда вы хотите , чтобы имена элементов , чтобы быть строками (текст).
  • Вы должны использовать массивы , когда вы хотите , чтобы имена элементов , чтобы быть числами.

Избегайте new Array()

Там нет необходимости использовать встроенный конструктор массива в JavaScript в new Array() .

Используйте [] вместо этого.

Эти две разные заявления как создать новый пустой массив с именами точек:

var points = new Array();         // Bad
var points = [];                  // Good 

Эти две разные заявления как создать новый массив, содержащий 6 чисел:

var points = new Array(40, 100, 1, 5, 25, 10)  // Bad
var points = [40, 100, 1, 5, 25, 10];          // Good
Попробуй сам "

new ключевое слово только усложняет код. Он может также производить некоторые неожиданные результаты:

var points = new Array(40, 100);  // Creates an array with two elements (40 and 100)

Что делать, если я удалить один из элементов?

var points = new Array(40);       // Creates an array with 40 undefined elements !!!!!
Попробуй сам "

Как распознать массив

Общий вопрос: Как я могу узнать, является ли переменная массивом?

Проблема заключается в том, что оператор JavaScript typeof возвращает "объект":

var fruits = ["Banana", "Orange", "Apple", "Mango"];

typeof fruits;             // returns object
Попробуй сам "

Отдача оператор TypeOf объект, так как массив JavaScript является объектом.

Решение 1:

Для решения этой проблемы ECMAScript 5 определяет новый метод Array.isArray() :

Array.isArray(fruits);     // returns true
Попробуй сам "

Проблема с этим решением является то , что в ECMAScript 5 не поддерживается в старых браузерах.

Решение 2:

Чтобы решить эту проблему , вы можете создать свой собственный isArray() функции:

function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}
Попробуй сам "

Выше функция всегда возвращает истину, если аргумент является массивом.

Или точнее: он возвращает истину, если объект-прототип содержит слово "Array".

Решение 3:

instanceof оператор возвращает истину , если объект создается с помощью данного конструктора:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits instanceof Array     // returns true
Попробуй сам "

Проверьте себя с упражнениями!

Упражнение 1 » Упражнение 2» Упражнение 3 » Упражнение 4» Упражнение 5 »