Минимальные и максимальные значения массива

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы изучим, как найти минимальные и максимальные значения в массиве на основе заданной функции. Мы будем использовать метод reduce(), комбинируя его с функцией-компаратором, чтобы вернуть соответствующий элемент в массиве. В конце практического занятия вы хорошо освоите методы поиска минимальных и максимальных значений в массиве на основе собственных функций-компараторов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28330{{"Минимальные и максимальные значения массива"}} javascript/data_types -.-> lab-28330{{"Минимальные и максимальные значения массива"}} javascript/arith_ops -.-> lab-28330{{"Минимальные и максимальные значения массива"}} javascript/comp_ops -.-> lab-28330{{"Минимальные и максимальные значения массива"}} javascript/higher_funcs -.-> lab-28330{{"Минимальные и максимальные значения массива"}} javascript/destr_assign -.-> lab-28330{{"Минимальные и максимальные значения массива"}} end

Как найти минимальное и максимальное значения в массиве с использованием заданной функции

Для практики программирования откройте Терминал или SSH и введите node.

Вот функция, которая возвращает минимальное и максимальное значения в массиве на основе заданной функции, которая устанавливает правило сравнения:

const reduceWhich = (arr, comparator = (a, b) => a - b) =>
  arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));

Для использования этой функции следуйте шагам:

  1. Вызовите reduceWhich с массивом, который вы хотите обработать, и необязательной функцией comparator.
  2. Функция reduceWhich будет использовать Array.prototype.reduce(), комбинируя его с функцией comparator, чтобы вернуть соответствующий элемент в массиве.
  3. Если вы опустите второй аргумент (comparator), будет использована стандартная функция, которая возвращает минимальный элемент в массиве.

Вот несколько примеров использования reduceWhich:

reduceWhich([1, 3, 2]); // 1
reduceWhich([1, 3, 2], (a, b) => b - a); // 3
reduceWhich(
  [
    { name: "Tom", age: 12 },
    { name: "Jack", age: 18 },
    { name: "Lucy", age: 9 }
  ],
  (a, b) => a.age - b.age
); // {name: 'Lucy', age: 9}

В примерах выше первый вызов reduceWhich возвращает минимальное значение массива [1, 3, 2], которое равно 1. Второй вызов возвращает максимальное значение того же массива на основе функции comparator, которая изменяет порядок сравнения. Третий вызов возвращает объект в массиве, у которого минимальное значение свойства age, на основе функции comparator, которая сравнивает свойства age объектов.

Резюме

Поздравляем! Вы завершили практическое занятие по нахождению минимального и максимального значений в массиве на основе заданной функции. Вы можете практиковаться в других задачах в LabEx, чтобы улучшить свои навыки.