Массивы в JavaScript.


Массивы в JavaScript – тип данных, объединяющий один или несколько элементов (значений), каждый из которых имеет свой уникальный индекс (или номер). Массивы удобны для объединения, хранения и передачи данных.

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

Существует два способа создать массив в JavaScript:

1
2
var my_array = [];
var my_array = new Array();

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

1
2
my_array[1] = '34';
my_array[3] = '53';

При добавлении новых элементов в массив мы указываем индекс для данного элемента:

1
my_array[3] = '53';

Добавить список значений в массив также можно сразу при создании массива:

1
2
var my_array = [34, 53];
var my_array = new Array(34, 53);

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

1
var my_array = new Array(34);

то вы получите не массив, содержащий один элемент 34, а массив с количеством элементов 34, каждый из которых не имеет значения (undefined).

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

1
var a = my_array[1];

Методы работы с массивами в JavaScript.

Определить размер (длину) массива. Если нумерация индексов элементов идет по порядку без «разрыва» (0, 1, 2, 3…), то мы можем определить размер массива с помощью свойства length:

1
alert(my_array.length);

Свойство length возвращает значение максимального индекса в массиве, прибавляя к нему 1, поэтому если в массиве есть индексы с «разрывом» в нумерации, то мы получим некорректное значение.

Перебор элементов в массиве.

Если индексы в массиве имеют неразрывную нумерацию, то перебрать все значения можно в цикле следующим образом:

1
2
3
4
var my_arr = [ "2", "1", "6" ]
for(var i=0; i<my_arr.length; i++) {
  alert(my_arr[i]);
}

Если же нумерация «прерывается», то можно сделать так:

1
2
3
4
5
6
7
8
var my_arr = []
my_arr[1] = 165
my_arr[5] = 783
 
for(var i in my_arr) {
    if (!my_arr.hasOwnProperty(i)) continue;
   alert(my_arr[i]);
}

Метод push() позволяет добавить новый элемент в конец массива:

1
2
var my_arr = [2,1,6, 9];
my_arr.push(4);

Метод pop() извлекает последний элемент из массива, одновременно удаляя его в массиве:

1
2
3
var my_array = [2, 1, 6, 9];
var last_elem = my_array.pop();
alert(my_array.length);//выведет 3

Метод shift() позволяет добавить новый элемент в начало массива:

1
2
var my_arr = [2,1,6, 9];
my_arr.shift(4);

Метод unshift() извлекает первый элемент из массива, одновременно удаляя его в массиве:

1
2
3
var my_array = [2, 1, 6, 9];
var last_elem = my_array.unshift();
alert(my_array.length);//выведет 3

shift() и unshift() приводят к перенумерации всех индексов массива.

Метод slice() позволяет получить часть массива, начиная с first и заканчивая last.

1
slice (first [,last]);

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

Метод join() позволяет объединить элементы массива в строку с определенным разделителем между элементами.

1
2
3
var my_array = [2, 1, 6, 9];
my_string = my_array.join(" – ");
//В результате мы получим строку my_string = "2-1-6-9";

Метод reverse() позволяет расположить элементы массива в обратной порядке.

1
2
var my_array = [2, 1, 6, 9];
my_array.reverse();

Теперь элементы массива будут расположены так: 9, 6, 1, 2.

Метод indexOf() позволяет искать определенный элемент в массиве и возвращает его индекс в массиве в случае успеха и -1, если такое значение не найдено.

1
2
var my_array = [2, 1, 6, 9];
var ind = my_array.indexOf(2);//вернет 0

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

1
var ind = my_array.indexOf(2, 1);//вернет -1

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

1
2
var my_array = [2, 1, 6, 2];
var ind = my_array.lastIndexOf(2);//вернет 3

Метод concat() производит объединение элементов массива с новыми элементами:

1
2
var my_array = [1,2,3];
var new_array = my_array.concat(4, 5) ; //получим 1,2,3,4,5

Вместо отдельных значений в скобках могут быть перечислены массивы, элементы которых будут объединены в новый массив с элементами указанного массива.

1
2
3
var my_array = [1,2,3];
var second_array = [4,5];
var new_array = my_array.concat(second_array) ; //получим 1,2,3,4,5




Другие посты

Категория: JavaScript для сайта

Комментарии (2)

 

  1. Олег:

    Кажется, в описании Метода lastIndexOf() опечатка:
    написано: //вернет 2
    должно быть: //вернет 3

  2. admin:

    Да, верно. Спасибо за подсказку — поправил.

Оставить комментарий