06 Модуль -- 03 Перебирающие методы массива Flashcards

1
Q

Методы массивов синтаксис

A

массив array, вызов метода method и callback-функция callback в качестве аргумента метода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Аргументами callback-функции являются

A

значение элемента element (первый параметр), позиция элемента index (второй параметр) и сам исходный массив array (третий параметр).
Все параметры кроме значения элемента element необязательны.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Array.prototype.forEach()

A

методов который ничего не возвращает, а просто перебирает коллекцию. Используется как замена цикла for и for of.
Прервать инструкцией break нельзя.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Пример Array.prototype.forEach()

A
// Функциональный forEach
numbers.forEach(num => console.log(num));
// Указываем параметр idx если нужен доступ к счетчику
numbers.forEach((num, idx) => console.log(`index ${idx}, value ${num}`));
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Array.prototype.map()

A

Поэлементно перебирает оригинальный массив. Возвращает новый массив такой же длины. И может что-то делать для каждого элемента.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Пример Array.prototype.map()

A

const numbers = [1, 2, 3];

const doubledNumbers = numbers.map(num => num * 2);
console.log(doubledNumbers); // [2, 4, 6]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Array.prototype.filter()

A

Поэлементно перебирает оригинальный массив. Возвращает новый массив. Добавляет элементы в новый массив, только которые удовлетворяют условию, то есть возвращают true. Не мутирует иcходный массив. Если ничего не найдено, вернет пустой массив.
Используется когда необходимо найти более одного элемента в коллекции.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Пример Array.prototype.filter()

A

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]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Array.prototype.find()

A

Поэлементно перебирает оригинальный массив. Возвращает первый элемент удовлетворяющий условию, если не найдет вернет undefined.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Пример Array.prototype.find()

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Array.prototype.every()

A

Поэлементно перебирает оригинальный массив. Возвращает true если ВСЕ элементы массива удовлетворяют условию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Array.prototype.some()

A

Поэлементно перебирает оригинальный массив. Возвращает true если хотя-бы один элемент массива удовлетворяет условию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Пример Array.prototype.every()

A
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Пример Array.prototype.some()

A
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Array.prototype.reduce()

A

Поэлементно перебирает оригинальный массив. Обычно используется для подсчета суммы значений массива(totalSalary), используется тоже для статистики.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как работает Array.prototype.reduce() ?

A
  1. Функция reduce создаст новую переменную, называемую аккумулятор. Затем присвоит аккумулятору значение текущего (первого) элемента массива currentItem.
  2. Функция проверит есть ли у массива следующий элемент и если он есть, то добавит значение к аккумулятору. Когда следующего элемента не окажется (конец массива), функция вернет значения аккумулятора.
  3. Вторым аргументом reduce может быть начальное значение initialValue. Это значение будет присвоено аккумулятору до применения callback-функции к первому элементу массива.
17
Q

Array.prototype.sort()

A

Изменяет оригинальный массив. По умолчанию метод sort сортирует, преобразуя элементы к строке.

18
Q

Функция Array.prototype.sort()

A

((a, b) => a - b); // For ascending sort (от 1 до 10)

(a, b) => b - a); // For descending sort (от 10 до 1

19
Q

Пример Chaining - Цепочки методов массива

A

const numbers = [1, 2, 3, 4, 5, 6, 7, 8];

/*

  • Фильтруем четные числа. Далее, на результате метода filter,
  • вызываем map и множим на 2. После чего на результате
  • метода map вызываем reverse.
  • /

const result = numbers
.filter(x => x % 2 === 0)
.map(y => y * 2)
.reverse();

console.log(result);

20
Q
Что за проблема есть в этом коде? 
const numbers = [1, 2, 3, 4, 5, 6, 7, 8];

const even = numbers.filter(x => x % 2 === 0);

const doubled = even.map(x => x * 2);

const reversed = doubled.reverse();

console.log(reversed);

A

Проблема в том, что у нас появляются промежуточные переменные после каждой операции.

21
Q

Chaining - Цепочки методов массива

A

Каждый следующий метод будет выполняться на результате работы предыдущего. Нужен для того чтобы можно было избавляться от промежуточных переменных.