Изменение массивов с помощью метода Array.prototype.push()
Простым способом добавления данных в конец массива является метод Array.prototype.push()
. Array.prototype.push() принимает один или несколько параметров и добавляет их в конец массива.
var arr = [1,2,3];
arr.push(4); // arr теперь [1,2,3,4]
Примечание: Метод .push()
является мутирующим, то есть изменяющим саму переменную. То есть для того, чтобы сама переменная-массив изменилась, не надо ей переназначать полученный результат. Сам по себе вызов метода .push()
уже меняет переменную. При этом в результате метод возвращает не текущую переменную, а новую длину массива (количество элементов в нем). Для лучшего понимания посмотрите измененный пример:
var arr = [1,2,3];
arr.length === 3; // Было 3 элемента
const length = arr.push(4); // arr теперь [1,2,3,4]
arr.length === length; // Длина массива теперь 4 и равна значению переменной length
Внимание! В примере мы написали arr.push(), а в описании выше писали Array.prototype.push(). Здесь мы сталкиваемся с принципами Объектно-Прототипного программирования. Суть в том, что в JavaScript обозначено 9 основных типов данных. Один из этих типов: Object (Объект). Array (Массив) в свою очередь тоже есть суть Object (Объект) и является встроенным объектом самого языка JavaScript (Хотя правильней будет сказать самого движка). Так вот, прототипы объектов могут иметь свои наборы готовых методов (функций). И все конечные инстансы, созданные на основе таких объектов, получают тот же самый набор методов. Более того, при изменении прототипов исходных объектов, конечные инстансы так же получают измененный набор методов. Методами функции называются тогда, когда они принадлежат каким-либо объектам (являются свойствами объектов). Вот и метод Array.prototype.push()
- это не самостоятельная функция push()
, а именно метод массива. То есть если у вас переменная будет не инстанс массива, а число или строка, то у такой переменной не будет метода push().
Подсказка: познакомьтесь и с другими методами объекта Array в документации MDN.
Добавьте значение ["dog", 3]
в конец переменной myArray
.