В JavaScript методы массива высокого порядка — лучший способ выполнения итераций. Конечно, у нас есть общие методы итерации, такие как цикл for и цикл do … while, но более высокого порядка. Метод массива превосходит традиционные методы, обеспечивая более высокий уровень операций с массивами.

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

Предположим, что для этого урока у нас есть массив с именем todos, содержащий 3 объекта с разными параметрами.

Мы собираемся использовать простой массив из трех объектов, чтобы показать, как используются методы массива высокого порядка.

const todos = [
{
   id: 1,
   text: "Take out the trash",
   isCompleted: true
},
{
   id: 2,
   text: "Meeting with the boss",
   isCompleted: true
},
{
   id: 3,
   text: "Dentists appointment",
   isCompleted: false
}
]

Массивы более высокого порядка, которые мы собираемся рассмотреть, равны 3:

1. forEach
2. map
3. filter
  1. для каждого()

Функция forEach перебирает весь массив.

todos.forEach(function(todo){
  console.log(todos.text);
});

Эти массивы высокого порядка принимают в качестве параметра функцию обратного вызова, которая принимает несколько параметров; первая - это переменная, которую вы хотите использовать в качестве каждого элемента.

Код будет перебирать массив и выводить текстовые элементы каждого объекта. Результат показан ниже:

Take out the trash
Meeting with the boss
Dentists appointment

2. карта()

Функция карты позволяет нам создать новый массив из массива. Мы применяем использование const, потому что функция карты возвращает массив. По сути, функция map перебирает заданный массив (в нашем случае todos), возвращает массив текста и сохраняет их в новом созданном массиве. массив, todoText.

const todoText = todos.map(function(todo){
   return todoText;
});

Результатом будет функция, которая выглядит примерно так:

[
{
   "Take out the trash"
},
{
   "Meeting with the boss"
},
{
   "Dentists appointment"
}
]

3. фильтр()

Метод filter позволяет нам создать новый массив на основе условия. В нашем случае допустим, что мы хотим вернуть выполненные задачи (которые возвращают true).

const todoCompleted = todos.filter(function(todo){
   return todo.isCompleted === true;
});
console.log(todoCompleted);

Результатом будет массив выполненных задач, как показано ниже:

[
{
   text: "Take out the trash",
   isCompleted: true
},
{
   text: "Meeting with the boss",
   isCompleted: true
},
]