Какие бывают перебирающие методы для массивов в js?

Аватар пользователя Andrey G
Andrey G
10 декабря 2022

map

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

const letters = ['a', 'b', 'c', 'd'];
const upperLetters = letters.map((letter) => letter.toUpperCase());

console.log(upperLetters); // => ['A', 'B', 'C', 'D']

Отображение (map)

filter

Метод .filter отбирает из массива элементы, удовлетворяющие нашим критериям. В качестве параметра метод принимает функцию-предикант в которой описываются критерии для отбора. Переданная функция должна возвращать true или false.
.filter возвращает новый массив с элементами, которые прошли проверку. Если ни один элемент не прошёл проверку, то будет возвращён пустой массив.

const numbers = [10, 2, 3, 5, 9, 0, 7, 4];
const filteredNumbres = numbers.filter((n) => n >= 5 && n < 10);

console.log(filteredNumbres); // => [5, 9, 7]

Фильтрация (filter)

reduce

Метод .reduce применяется, когда нужно вычислить значение на основании набора данных. Результатом работы метода может быть любой тип данных, как примитивный, так и составной.

const numbers = [10, 2, 3, 5, 9, 0, 7, 11];
const sum = numbers.reduce((acc, n) => acc + n, 0);

console.log(sum); // => 47
const fruits = ['apples', 'bananas', 'oranges', 'apples', 'kiwi', 'apples'];

const fruitsCount = fruits.reduce((acc, fruit) => {
  const value = (acc[fruit] ?? 0) + 1;
  return {...acc, [fruit]: value};
}, {});

console.log(fruitsCount); // => {apples: 3, bananas: 1, oranges: 1, kiwi: 1}

Агрегация (reduce)

some

Метод .some() перебирает исходный массив и возвращает true, если хотя бы один из элементов массива удовлетворяет нашему условию.

const numbers = [10, 2, 3, 5, 9, 0, 7, 4];
const isEven = (n) => n % 2 === 0;

console.log(numbers.some(isEven)); // => true

every

Метод .every() очень похож на .some(), но в отличие от первого возвращает true, только в том случае, если каждый элемент массива удовлетворяет нашему условию.

const numbers = [10, 2, 3, 5, 9, 0, 7, 4];
const isEven = (n) => n % 2 === 0;

console.log(numbers.every(isEven)); // => false
const numbers = [10, 8, 20, 54, 92, 2, 72, 4];
const isEven = (n) => n % 2 === 0;

console.log(numbers.every(isEven)); // => true

includes

Метод .includes() можно использовать для проверки массива на наличие каких-либо элементов.

const fruits = ['apples', 'bananas', 'oranges'];

console.log(fruits.includes('oranges')); // => true
console.log(fruits.includes('kiwi')); // => false
0 0
Основы Frontend за 14 дней
  • 72 урока в онлайн-тренажере
  • 4 живых вебинара и масскодинг
  • Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки