06 Модуль -- 03 Перебирающие методы массива Flashcards
Методы массивов синтаксис
массив array, вызов метода method и callback-функция callback в качестве аргумента метода.
Аргументами callback-функции являются
значение элемента element (первый параметр), позиция элемента index (второй параметр) и сам исходный массив array (третий параметр).
Все параметры кроме значения элемента element необязательны.
Array.prototype.forEach()
методов который ничего не возвращает, а просто перебирает коллекцию. Используется как замена цикла for и for of.
Прервать инструкцией break нельзя.
Пример Array.prototype.forEach()
// Функциональный forEach numbers.forEach(num => console.log(num));
// Указываем параметр idx если нужен доступ к счетчику numbers.forEach((num, idx) => console.log(`index ${idx}, value ${num}`));
Array.prototype.map()
Поэлементно перебирает оригинальный массив. Возвращает новый массив такой же длины. И может что-то делать для каждого элемента.
Пример Array.prototype.map()
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(num => num * 2); console.log(doubledNumbers); // [2, 4, 6]
Array.prototype.filter()
Поэлементно перебирает оригинальный массив. Возвращает новый массив. Добавляет элементы в новый массив, только которые удовлетворяют условию, то есть возвращают true. Не мутирует иcходный массив. Если ничего не найдено, вернет пустой массив.
Используется когда необходимо найти более одного элемента в коллекции.
Пример Array.prototype.filter()
const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console. log(numbers.filter(num => num > 5)); // [6, 7, 8, 9]
console. log(numbers.filter(num => num < 5)); // [0, 1, 2, 3, 4]
console. log(numbers.filter(num => num === 5)); // [5]
Array.prototype.find()
Поэлементно перебирает оригинальный массив. Возвращает первый элемент удовлетворяющий условию, если не найдет вернет undefined.
Пример Array.prototype.find()
const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console. log(numbers.find(num => num > 5)); // 6
console. log(numbers.find(num => num < 5)); // 0
console. log(numbers.find(num => num === 5)); // 5
Array.prototype.every()
Поэлементно перебирает оригинальный массив. Возвращает true если ВСЕ элементы массива удовлетворяют условию.
Array.prototype.some()
Поэлементно перебирает оригинальный массив. Возвращает true если хотя-бы один элемент массива удовлетворяет условию.
Пример Array.prototype.every()
const fruits = [ { name: 'apples', amount: 100 }, { name: 'bananas', amount: 0 }, { name: 'grapes', amount: 50 }, ];
// every вернет true только если всех фруктов будет больше чем 0 штук const allAvailable = fruits.every(fruit => fruit.amount > 0); // false
Пример Array.prototype.some()
const fruits = [ { name: 'apples', amount: 100 }, { name: 'bananas', amount: 0 }, { name: 'grapes', amount: 50 }, ];
// some вернет true если хотябы одного фрукта будет больше чем 0 штук const anyAvailable = fruits.some(fruit => fruit.amount > 0); // true
Array.prototype.reduce()
Поэлементно перебирает оригинальный массив. Обычно используется для подсчета суммы значений массива(totalSalary), используется тоже для статистики.