Массивы в 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 для сайта
Кажется, в описании Метода lastIndexOf() опечатка:
написано: //вернет 2
должно быть: //вернет 3
Да, верно. Спасибо за подсказку – поправил.