Перейти к основному содержимому

Цикличная обработка

МетодОписание
.map()мапинг
.flatMap()плоский мапинг
.filter()фильтрация
.find()поиск элемента
.findIndex()поиск индекса
.findLast()поиск элемента с конца
.findLastIndex()поиск индекса с конца
.some()проверка элемента
.every()проверка каждого элемента
.sort()сортировка
.toSorted()сортировка
.reduce()схлопывание
.reduceRight()схлопывание справа
.forEach()
.entries() / .keys() / .values()итераторы в цикле for

map()


flatMap()

.flatMap() = map() + flat(1) в одном вызове: ты возвращаешь массив (или значение), а результат автоматически «сплющивается» на 1 уровень.

const words = ['hi', 'js'];
const letters1 = words.map(w => w.split('')); // [ [ 'h', 'i' ], [ 'j', 's' ] ]
const letters2 = words.flatMap(w => w.split('')); // ['h', 'i', 'j', 's']

filter()


find()


findIndex()


findLast()


findLastIndex()


some()


every()


sort()


toSorted()

Возвращает новый массив, не мутирует исходный в отличие от .sort();


reduce()


reduceRight()


forEach()


iterators

const arr = ['a', 'b', 'c'];

// keys() — индексы
for (const i of arr.keys()) {
console.log(i); // 0, 1, 2
}

// values() — значения (по сути то же, что for...of по массиву)
for (const v of arr.values()) {
console.log(v); // 'a', 'b', 'c'
}

// entries() — пары [index, value]
for (const [i, v] of arr.entries()) {
console.log(i, v); // 0 'a', 1 'b', 2 'c'
}

Сразу можно преобразовать в другой массив:

const arr = ['a', 'b', 'c'];

[...arr.keys()]; // [0, 1, 2]
[...arr.values()]; // ['a', 'b', 'c']
[...arr.entries()]; // [[0, 'a'], [1, 'b'], [2, 'c']]