Какие бывают перебирающие методы для массивов в 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
Познакомьтесь с основами JavaScript бесплатно