Урок 11 из 25
В прогрессе

11) Методы массивов

Добавление и удаление элементов

Чтобы добавить или удалить элементы из массива, используется 4 основных метода. Это: push, pop, shift и unshift.

  • push () – добавление одного или нескольких элементов в конец набора значений.
  • pop () – удаление последнего элемента.
  • shift () – удаление первого элемента.
  • unshift () – добавление одного или несколько элементов в начало.

Методы pop и shift возвращают значение удаленного элемента, а push и unshift – длину измененного массива.

Кроме перечисленных методов, стоит отметить универсальный метод splice. Благодаря ему можно вставить, удалить или заменить элементы.

Синтаксис метода splice ():

				
					array.splice( startIndex, deleteCount [, element1[, element2[, ...]]] );
				
			

Параметры: 

  • startIndex – это индекс начала изменения набора значений. В случае, когда этот параметр будет превышать длину массива, значение стартового индекса будет равно длине. Либо примет разницу array.lenght и этого числа, если ввести отрицательное число. 
  • deleteCount – это число удаляемых элементов начиная с startIndex. Оно может быть равно 0. В этом случае с элементами ничего не произойдет. 
  • element1, element2, …. – элементы, которые будут добавлены в массив. Необязательный параметр.

Метод splice возвращает набор удаленных значений.

Перебор элементов

За перебор элементов массива отвечает метод forEach.

Синтаксис метода forEach ():

				
					arr.forEach( function callback( currentValue, index, array ), thisValue );
				
			

Параметры:

  • callback – это основной параметр, а именно функция обратного вызова, которая будет единоразово осуществлена для каждого элемента. Ее аргументы: currentValue, index, array.
    • currentValue — обрабатываемый элемент в наборе.
    • index — индекс этого элемента.
    • array – массив выбранного элемента.
  • thisValue – это необязательный параметр. Он принимает значение, которое будет использовано в качестве this при вызове функции.

Возвращаемое значение — всегда undefined.

Поиск элемента в массиве

существить поиск элементов помогут такие методы, как indexOf/lastIndexOf, includes, find/findIndex и filter. 

Методы indexOf и lastIndexOf ищут нужное значение среди всех и возвращают его индекс при первом совпадении. Первый выполняет поиск с начала массива, а второй – с конца. Оба метода вернут –1, когда искомое значение не будет найдено.

Синтаксис методов indexOf () и lastIndexOf ():

				
					array.indexOf( searchElement, fromIndex )
array.lastIndexOf( searchElement, fromIndex )
				
			

Синтаксис метода filter ():

				
					var filteredArray = arr.filter( function( currentValue, index, array ), thisValue ); 
				
			

Методы преобразования массива

Последняя группа методов массивов в JavaScript, которая будет рассмотрена в данной статье – это методы преобразования массива. К ним можно отнести: map, flat, flatmap, sort и reverse. Рассмотрим каждый из них более подробно ниже.

Map() организовывает новый набор значений с результатом вызова указанной callback–функции для каждого элемента.

Синтаксис метода map ():

				
					var newArray = array.map( function( currentValue, index, arr ), thisValue ); 
				
			

.concat()

concat() принимает в качестве аргументов элементы, объединяемые в новый массив.

concat() возвращает новый массив, полученный при объединении.

Если метод без аргументов был вызван для массива, возвращается поверхностная копия (shallow copy) исходного массива:

				
					const numbers = [1, 2, 3, 4]
const copyNumbers = numbers.concat()

console.log(copyNumbers)
// [1, 2, 3, 4]

console.log(numbers)
// [1, 2, 3, 4]

				
			

Домашняя работа:

1. Метод forEach

  • Задание: Напишите функцию, которая принимает массив строк и выводит каждую строку с заглавной буквы. Используйте forEach для перебора элементов массива.

2. Метод map

  • Задание: Создайте функцию, которая принимает массив чисел и возвращает новый массив, где каждое число возведено в квадрат. Используйте map.

3. Метод filter

  • Задание: Напишите функцию, которая принимает массив чисел и возвращает массив только с четными числами. Используйте filter.

4. Метод reduce

  • Задание: Напишите функцию, которая принимает массив чисел и возвращает их сумму. Используйте reduce.

5. Метод find

  • Задание: Создайте функцию, которая принимает массив объектов с полями name и age. Найдите первый объект, где age больше 18. Используйте find.

6. Метод some

  • Задание: Напишите функцию, которая проверяет, есть ли в массиве хотя бы одно отрицательное число. Используйте some.

7. Метод every

  • Задание: Создайте функцию, которая проверяет, что все элементы массива строк начинаются с заглавной буквы. Используйте every.

8. Метод sort

  • Задание: Напишите функцию, которая принимает массив чисел и сортирует их в порядке убывания. Используйте sort.