Array

Объект Array служит для создания массивов. Массив — это набор элементов, содержащих значения, сохраненный под одним именем. Например, массив score может использоваться для сохранения счета сыгранных матчей. Массивы могут состоять из чисел, строковых переменных, объектов и других типов данных. Перед использованием массив необходимо объявить через конструктор Array и оператор new.

Создадим несколько массивов:

array1 = new Array(); // массив без заданных значений
array2 = new Array(30); // Массив из 30 элементов
array3 = new Array(1,, 2, 3, "four", "five"); // Массив с определенными значениями

Если длина массива не определена, как показано в первом примере, то она может изменяться динамически, при этом элементами массива могут быть значения любого типа. Чтобы определить значения массива, укажите его индекс в скобках. Индексирование элементов массива начинается с 0, поэтому элементы объявленного выше второго массива имеют индексы 0—29, но общее их количество равно числу аргументов. Следующие операторы определяют значения первых четырех элементов массива:

scores[0] = 39;
scores[1] = 40;
scores[2] = 100;
scores[3] = 49;

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


const cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats[2]); // выводит третий элемент массива Рыжик

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


cats[1] = "Васька";
// Проверим
console.log(cats[1]);

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


const cats[];
cats[0] = "Барсик";
cats[1] = "Мурзик";

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


cats[5] = "Пушок";
console.log(cats[4]);

В массив можно вложить ещё один массив.

Массивы имеют свойство length. Оно определяет количество элементов, из которых состоит массив. Оно же определяется при создании массива. В следующем примере отображается число элементов массива array2:


console.log(array2.length);

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


console.log(cats.length - 1);

Массивы часто используются в циклах


var num = new Array (1, 2, 3, 4, 5, 6, 7, 8, 9);
var sum = 0;
for (i = 0; i < num.length; i++)
  sum += num[i];

В начале примера инициируется массив с именем num, состоящий из девяти элементов. В цикле пробегаем по всем элементам массива с помощью конструкции num[i] и суммируем все значения массива.

Массивы являются весьма гибкими. Размер массива устанавливается динамически. Если мы создадим массив myArray[29] = "Вася", то величина массива автоматически устанавливается в размере 30 элементов.

Массивы в JavaScript могут лишь увеличиваться в размерах, но не могут уменьшаться.

Управление элементами массива

Содержимое массива определяется значениями его элементов. При управлении элементами массива используются те же методы, что и при управлении значениями и переменными. Например, следующий оператор позволяет отобразить значения первых четырех элементов массива scores:

scoredisp = "Статистика: " + scores[0] + "," + scores[1] + "," + scores[2] + "," + scores [3];
document.write(scoredisp);

Использование строковых массивов

Наряду с числовыми массивами, активно используются и строковые массивы. Это позволяет просто и эффективно управлять большими объемами текстовой информации. Объявление строковых массивов проводится тем же способом, что и объявление числовых массивов:


names = new Array(30);
names[0] = "Александр";
names[1] = "Вера";

Элементы строкового массива используются везде, где позволено использовать строковые переменные. Все описанные выше методы выполняются и для элементов строковых массивов. Например, следующий оператор позволяет распечатать первые пять символов значения первого элемента массива names:


document.write(names[0].substring(0,5));

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

Для добавления нового элемента в массив используется метод push(), в скобках нужно указать элемент для добавления.


var cats = ["Барсик", "Мурзик", "Рыжик"];
cats.push("Васька");
console.log(cats);

При добавлении нового элемента изменяется длина массива. Сам элемент добавляется в конец массива.

Для добавления элемента в начало массива используйте метод unshift().


cats.unshift("Пушок");

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

Удаление элементов массива

Удалить последний элемент массива можно через метод pop(), который возвращает удаляемый элемент. Соответственно, уменьшается и длина массива.


var deleted = cats.pop();
console.log(deleted);

Первый элемент можно удалить через метод shift(), который также возвращает значение удаляемого элемента.


deleted = cats.shift();
console.log(deleted);

Объединение массивов

Объединить один массив с другим можно через функцию concat(), указав в качестве параметра второй массив. Элементы второго массива окажутся после элементов первого массива. При этом образуется третий общий массив.


firstArray.concat(secondArray)

Попробуем.


var cats = ["Барсик", "Мурзик", "Рыжик"];
var dogs = ["Бобик", "Шарик", "Тузик"];
var pets = cats.concat(dogs);
console.log(pets);

Сами массивы остаются прежними и не меняются.

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


firstArray.concat(secondArray, thirdArray, fourthArray)

Поиск индекса по элементу

Чтобы узнать индекс элемента в массиве (его порядковый номер), используйте функцию indexOf().


var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.indexOf("Мурзик")); // вернет 1

По сути метод работает наоборот. По индексу мы можем узнать значение элемента, а по элементу его индекс.


var cats = ["Барсик", "Мурзик", "Рыжик"];
var index = cats.indexOf("Мурзик");
console.log(cats[index]); // вернет Мурзик

Если элемента по запрашиваемому индексу нет, то возвращается -1.

Если элемент в массиве встречается несколько раз, то возвращается первый найденный.

Превращаем массив в строку

С помощью функции join() можно преобразовать массив в строку.


var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.join());
// возвращает Барсик,Мурзик,Рыжик

Как видите, элементы массива перечисляются через запятую и без пробелов и кавычек.

Если вас не устраивают запятые, то в параметре функции вы можете указать свой разделитель.


var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.join("#"));
// Барсик#Мурзик#Рыжик

Если в массиве находятся нестроковые значения, то JavaScript автоматически сделает их строками.

Реклама