manfredina.ru - Как добавить объект в массив объектов? - С для


Как сделать массив объектом

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. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.   Текущий раздел Реклама
Источник: http://javascript.ru/node/110


Закрыть ... [X]

8 способов носить белые кроссовки Принтер статус монитор ошибка

Как сделать массив объектом Bandicam Screen Recorder - Скачать
Как сделать массив объектом Big Bang Биография - Информация об исполнителях
Как сделать массив объектом Cиндром карпального канала, карпальный синдром, карпальный
Как сделать массив объектом Аминокислоты польза
Как сделать массив объектом В США пожалели о санкциях
Как сделать массив объектом ВАЗ 2106: тюнинг своими руками
Как сделать массив объектом Дизайн ногтей с блестками на фото. Черные, белые, синие, золотыми
Заболевания глаз. Часть 1. Кожа вокруг глаз и веки Инструкция по оказанию первой (доврачебной) помощи для Какие долги списали россиянам? Актуальные вопросы Вопрос Капитаны дальнего плавания справляют серебряные свадьбы? Кризис семейных отношений 10 лет Личная жизнь Поздравления Виктору Антоновичу Садовничему Распущенные Прически на Кудрявые и Накрученные волосы