Массив ActionScript 3. Добавление и удаление элементов

На этом уроке ActionScript мы рассмотрим два вопроса:

  1. Добавление элементов в массив ActionScript 3
  2. Удаление элементов из массива

Множество значений, которые хранятся в массиве ActionScript 3 мы будем называть элементами. После того как Вы наполнили массив ActionScript  Вы можете удалять из него и добавлять нужное количество элементов.

Вы можете добавить новый элемент, используя один из двух методов массива ActionScript 3: push() и unshift(). push() добавляет новый элемент в конец массива, тогда как unshift() – в начало. Например, Вы создали массив, который содержит несколько значений

Теперь Вы можете добавить новый элемент в этот массив ActionScript 3 с помощью команды push():

В этом примере “блокнот” станет последним элементом в массиве. Если бы Вы добавили его с помощью метода unshift(), то он был бы первым. Заметьте, что не смотря на то что положение добавляемого элемента меняется, но принцип написания кода остается таким же:

Два метода, позволяющие удалять элементы из массива ActionScript 3 (ActionScript Array) записываются следующим образом: pop() и shift(). Аналогично push(), который добавляет элемент в конец массива, pop() – удаляет последний элемент. unshift() добавляет элемент в начало массива, shift() – удаляет первый элемент.

Таким образом, если Вы примените метод pop() к массиву myItems, то удалится последний элемент “книга” и остануться только “ручка” и “портфель”. Если будете использовать метод shift(), то удалится первый элемент “ручка” и остануться только “портфель” и “книга”.

Методы shift() и pop() ПОЛНОСТЬЮ удаляют элементы из массива. Т.е. если удаляется элемент с индексом “0”, то его место занимает элемент, имевший до этого удаления индекс “1”, но теперь его индекс становится “0”.

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

Создайте массив.

Наберите имя массива ActionScript 3, поставьте точку “.” и затем наберите push.

Откройте скобки, введите новое значение, закройте скобки, поставьте точку с запятой. (Если вводимое значение по своему типу является строкой (String), то не забудьте заключить его в кавычки)

Наберите команду trace, откройте скобки, введите имя массива, закройте скобки, поставьте точку с запятой.

Массив ActionScript 3

Нажмите одновременно клавиши Ctrl + Enter для тестирования. Запуститься Flash Player. Появится панель Output, в которой отобразятся все элементы массива.

Элемент, который Вы добавляли отобразится в этом ряду последним.

Панель Output

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

Введите имя массива, поставьте точку, наберите pop(), поставьте точку с запятой.

Наберите команду trace, откройте скобки, введите имя массива Actionscript 3, закройте скобки, поставьте точку с запятой.

trace ActionScript 3

Нажмите одновременно клавиши Ctrl + Enter для тестирования. Запуститься Flash Player. Появится панель Output, в которой отобразятся все элементы массива.

Последний элемент массива исчезнет.

Панель Output Actionscript

Дополнительная информация

Если Вы думаете, что запомнить какой из 4-х вышеперечисленных методов что делает трудно, то не беспокойтесь. Здесь Вы не одиноки. Многие программисты путаются, применяя это на практике. Особенно нелегко на первых порах запомнить за что отвечают shift() и unshift(), которые, соответственно, удаляют и добавляют элементы в массив Actionscript 3.

На практике, Вам придется чаще всего пользоваться методом push(). Когда не имеет значения порядок элементов в массиве – Вы будете применять его чаще всего.

Один из широко распространенных методов удаления элементов из массива следующий: Вы помещаете этот элемент в переменную и затем удаляете его с помощью метода pop().

Существует также способ удаления всех элементов из массива одновременно. Для этого необходимо использовать цикл (loop), в котором последовательно применяется метод pop() к каждому элементу массива. Но об этом подробнее в серии уроков о циклах.

Массив ActionScript 3. Добавление и удаление элементов: 9 комментариев

  1. Здравствуйте Валерий! Большое спасибо Вам за Ваши старания, они действительно помогают людям. В том числе и мне. Позвольте поинтересоваться, потому что я не очень хорошо понял вот это: “Существует также способ удаления всех элементов из массива одновременно. Для этого необходимо использовать цикл (loop), в котором последовательно применяется метод pop() к каждому элементу массива.” Для чего нужно удалять все содержимое или какую-то его часть из массива с помощью цикла, если это можно сделать в ручную в коде затрачивая меньше усилий для этого и не нагружая код? Возможно, я что-то не до конца понял? Спасибо!

    1. Если у тебя массив длинной 999999 элементов, и ты каждый будешь удалять руками, то они у тебя отвалятся. Вот лучше цикл покури: var myItems:Array = [“ручка”, “портфель”, “книга”]; var i:int = 0; while(myItems.length>i){ myItems[i].pop(); i++; }

  2. Serge, а если у тебя в массиве 1000 элементов, то как ты их вручную будешь удалять? Да и нагрузка так намного больше будет

  3. Элементарно Dima var arr:Array = new Array(); for (var i:int=0;i<1001;i++) { arr.unshift[i] } //сначала я добавил 1000 элементов от 0 до 1000. for(var i:int=0; i<1001; i++) { arr.shift(arr[i]); } //я удалил 999 элементов, начиная с конца

  4. Только начал изучать ActionScrit, и на мой взгляд это идеальный сайт для новичка в программировании, всё написано доступно и понятно, большое вам, Валерий, за это спасибо! А по данной теме меня интересует, а что если мне понадобится удалить(добавить) элемент из середины массива?

  5. Судя по всему добавление и удаление элементов массива всередине не востребовано, потому как вызывают сложности с позиционированием. Был 5й элемент массива Ручка. А программист добавляет третьим элементом какой-то карандаш. И вся нумерация части элементов сбивается. В случае с добавлением удалением начальных и конечных элементов все проще – индекс всех элементов смещается или граница массива сужается. И не надо отслеживать то, какая часть элементов массива стала под новым индексом, а какая осталась на прежнем “месте”.

  6. А как именуется функция, позволяющая удалять конкретный элемент массива? Что-то типа: myItems.delete[3]; Заранее благодарен.

  7. Один из широко распространенных методов удаления элементов из массива следующий: Вы помещаете этот элемент в переменную и затем удаляете его с помощью метода pop(). var oneItem:String = myItems.pop(); а если переменной присвоить тип Number, то программа проверки почему-то не ругается.. в связи с этим вопрос: означает ли это, что можно присвоить переменной только тип String?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *