Как сделать массив на js

Как сделать массив на js
Как сделать массив на js

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/array.

Javascript поддерживает два вида структуры "массив":

  1. Ассоциативный массив (хеш), где данные хранятся по произвольному ключу.
    Об этом читайте в разделе Объекты.
  2. Числовой массив Array, где данные хранятся по номерам.
    Он описан в этой статье.

Javascript - очень гибкий язык, поэтому технически в Array можно хранить произвольные ключи, как в Object. Но лучше использовать типы по назначению.

Для хранения данных по номеру предназначен тип Array.

var arr = new Array() arr.test = 5 arr[1] = "blabla" ...

В типе Array есть специальные методы, ориентированные именно на работу с числовыми ключами.

Есть два эквивалентных способа создания массива:

var a = new Array() var a = []

Или, сразу со значениями

var a = new Array("a", 1, true) var a = ["a", 1, true]

Эти способы работают одинаково, кроме объявления вида new Array(10), когда у конструктора есть единственный аргумент-число.

Такое объявление создаст пустой массив (все элементы undefined) длиной 10. По возможности, не используйте new Array.

Отсчет элементов начинается с нуля:

alert(a[0]) // => "a"

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

var a = [] a[1] = 1 a[999999] = 2

и массив a будет занимать память, нужную для хранения этих двух соответствий, а не займет длинный непрерывный кусок памяти, как это произошло бы в языке С.

У каждого массива есть свойство length, которое автоматом меняется при каждом обновлении массива. Длина массива - это не количество элементов, а максимальный целый ключ + 1:

alert(a.length) // всего 2 элемента, но выведет 1000000

Добавлять новый элемент можно эквивалентными вызовами

a[a.length] = "new element" a.push("new element")

Перебор элементов обычно (когда индексы непрерывные) осуществляется простым циклом:

var arr = [ "array", "elements", "here" ] for(var i=0; i<arr.length; i++) { ... сделать что-то с arr[i] ... }

Если индексы - с разрывами, то перебор осуществляется так же, как в объектах:

var arr = [] arr[1] = 123 arr[9999] = 456 for(var i in arr) { if (!arr.hasOwnProperty(i)) continue; ... сделать что-то с arr[i] ... }

В массиве есть всё необходимое, чтобы работать с ним как с очередью или со стеком, или и с тем и другим одновременно.

Методы push и pop добавляют или вынимают значение с конца массива

var arr = [3,5,7] arr.push(9) var last = arr.pop() //= 9 var last = arr.pop() // = 7 alert(arr.length) // = 2

Методы shift/unshift делают то же самое, с начала массива.

var arr = [4,6,8] arr.unshift(2) // arr = [2,4,6,8] arr.unshift(0) // arr = [0,2,4,6,8] var last = arr.shift() // last = 0, arr = [2,4,6,8] arr.shift() // arr = [4,6,8]

shift/unshift обычно приводят к перенумерации всего массива. shift сдвигает все элементы на единицу влево, а unshift - вправо. Поэтому на больших массивах эти методы работают медленнее, чем push/pop.

Массив

slice(begin[, end])

Возвращает подмассив с индексами begin…end.

splice(index, deleteCount[, element1,…, elementN])

Удалить deleteCount элементов, начиная с index, и вставить на их место element1…elementN

Есть и еще много методов:

  • join
  • reverse
  • ...

О них можно почитать на английском, например, в http://developer.mozilla.org/en/..Array


Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.   Текущий раздел
Как сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на jsКак сделать массив на js Как накачать руки при домашних условияхКролики бизнес план в домашних условияхОбереги в домашних условияхОткрытки мой мир другуКалина гбо своими рукамиРемонт батареи ноутбука своими руками ремонтаКак сделать повер поинтКак сделать джойстик из usbСамое лучшее для рассадыСнятие коробки на рено логан своими рукамиКак правильно сделать ворота на гаражБиозавивка волос в домашних условиях средстваПоздравление с 1 сентября ректорНабор для вышивки гобеленовым швомКак сделать маринад для огурцов с уксусом