Книга: JavaScript. Подробное руководство, 6-е издание
7.5. Добавление и удаление элементов массива
7.5. Добавление и удаление элементов массива
Мы уже видели, что самый простой способ добавить элементы в массив заключается в том, чтобы присвоить значения новым индексам:
а = [] // Создать пустой массив.
а[0] = "zero"; // И добавить элементы.
а[1] = "one";
Для добавления одного или более элементов в конец массива можно также использовать метод push():
а = []; // Создать пустой массив
a.push("zero") // Добавить значение в конец, а = ["zero"]
a.push("one", "two") // Добавить еще два значения, а = ["zero", "one", "two"]
Добавить элемент в конец массива можно также, присвоив значение элементу а[а.length]
. Для вставки элемента в начало массива можно использовать метод unshift()
(описывается в разделе 7.8), при этом существующие элементы в массиве смещаются в позиции с более высокими индексами.
Удалять элементы массива можно с помощью оператора delete
, как обычные свойства объектов:
а = [1.2.3];
delete а[1]; // теперь в массиве а отсутствует элемент с индексом 1
1 in а // => false: индекс 1 в массиве не определен
a.length // => 3: оператор delete не изменяет свойство length массива
Удаление элемента напоминает (но несколько отличается) присваивание значения undefined
этому элементу. Обратите внимание, что применение оператора delete
к элементу массива не изменяет значение свойства length
и не сдвигает вниз элементы с более высокими индексами, чтобы заполнить пустоту, оставшуюся после удаления элемента. После удаления элемента массив превращается в разреженный массив.
Кроме того, как уже было показано выше, имеется возможность удалять элементы в конце массива простым присваиванием нового значения свойству length
. Массивы имеют метод рор()
(противоположный методу push()
), который уменьшает длину массива на 1 и возвращает значение удаленного элемента. Также имеется метод shift()
(противоположный методу unshift()
), который удаляет элемент в начале массива. В отличие от оператора delete
, метод shift()
сдвигает все элементы вниз на позицию ниже их текущих индексов. Методырор()
и shift()
описываются в разделе 7.8 и в справочном разделе.
Наконец существует многоцелевой метод splice()
, позволяющий вставлять, удалять и замещать элементы массивов. Он изменяет значение свойства length
и сдвигает элементы массива с более низкими или высокими индексами по мере необходимости. Подробности приводятся в разделе 7.8.
- 7.1. Создание массивов
- 7.2. Чтение и запись элементов массива
- 7.3. Разреженные массивы
- 7.4. Длина массива
- 7.5. Добавление и удаление элементов массива
- 7.6. Обход элементов массива
- 7.7. Многомерные массивы
- 7.8. Методы класса Array
- 7.9. Методы класса Array, определяемые стандартом ECMAScript 5
- 7.10. Тип Array
- 7.11. Объекты, подобные массивам
- 7.12. Строки как массивы
- 8.1.16. Конкатенирование массивов и добавление в конец массива
- 8.2.12. Создание хэша из массива
- 8.1.14. Удаление из массива элементов равных nil
- 8.1.20. Обращение массива
- Изменение размера массива
- 8.1.18. Обход массива
- 19.3.4. Удаление элементов
- Создание свободно позиционируемых элементов
- 6.3. Добавление фоновой музыки
- Новые функции API для работы с Blob и массивами
- 9.2 Реализация массива ftAID на платформе Windows NT
- Удаление шаблонов узлов STP