Цикличная обработка
| Метод | Описание |
|---|---|
.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']]