05. Array Operations
Insert or delete elements in array
Оператор delete удаляет элемент массива оставляя в нем дыру и не изменяя значение legnth.
const arr = ["a", "b"];
// arr.length = 2
delete arr[1]; // does not update length true
// arr = [ 'a', ]
// arr.length = 2Для удаления элемента массива без создания дыры следует использовать метод splice:
> const arr = ['a', 'b', 'c', 'd'];
> arr.splice(1, 2) // returns what has been removed [ 'b', 'c' ]
> arr
[ 'a', 'd' ]Array as stack
Метод pop() удаляет последний элемент массива и возвращает его. Вызов на пустом массиве вернет undefined.
const myArray = ["1", "2", "3"];
const last = myArray.pop(); // => ["1", "2"], last = "3"Метод push() добавляет элемент в конец массива. Может принимать сразу несколько элементов.
const myArray = ["1", "2"];
myArray.push("3"); // => ["1", "2", "3"]
// use push + spread to concat two arrays
const vegetables = ["parsnip", "potato"];
const moreVegs = ["celery", "beetroot"];
vegetables.push(...moreVegs);Array as queue
Метод shift() удаляет первый элемент из массива и возвращает его. В отличие от оператора delete, метод shift() сдвигает все элементы вниз на позицию ниже их текущих индексов. Позволяет использовать массив как очередь.
const myArray = ["1", "2", "3"];
const first = myArray.shift();Метод unshift() вставляет элемент в начало массива, при этом существующие элементы в массиве смещаются в позиции с более высокими индексами:
const myArray = new Array("1", "2", "3");
myArray.unshift("4", "5");
// myArray becomes ["4", "5", "1", "2", "3"]Так же добавить элемент в конец массива можно также, присвоив значение элементу a[a.length]. Удалять элементы массива можно с помощью оператора delete, как обычные свойства объектов, но при этом значение length не уменьшается, а элементы массива не сдвигаются.
Getting sub-array
Метод slice в форме arr.slice([begin[, end]]) выполняет поверхностное копирование части исходного массива в новый.
Возвращает новый массив
Используется для поверхностного копирования всего массива когда вызван без параметров.
Если
beginпропущено, то его значением считается0.Отрицательное значение
endозначает индексацию с конца массива. Еслиendопущено, то его значением считаетсяarr.length.
Метод splice в форме array.splice(start, deleteCount[, item1[, item2[, ...]]]) удаляет deleteCount элементов с позиции start, опционально замещая их переданными элементами.
Метод
splice()изменяет исходный массив, относительно которого он был вызван.start-- принимает значения от нуля доarr.length. Отрицательные значения допускаются.deleteCountможет быть ноль.
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1, 3);
const shallowCopy = fruits.slice(); // this is how to make a copy
const myFish = ["angel", "clown", "mandarin", "surgeon"];
const removed = myFish.splice(2, 0, "drum");
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
removed = myFish.splice(3, 1);
// myFish is ['angel', 'clown', 'drum', 'surgeon']Last updated
Was this helpful?