Последний индекс вставки в отсортированном массиве

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

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

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

Введение

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


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/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/data_types -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/arith_ops -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/comp_ops -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/array_methods -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/higher_funcs -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} javascript/destr_assign -.-> lab-28340{{"Последний индекс вставки в отсортированном массиве"}} end

Как найти индекс последней вставки в отсортированном массиве на основе функции

Для начала работы с кодом откройте Терминал/SSH и введите node.

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

  1. Проверьте, отсортирован ли массив по убыванию.
  2. Используйте Array.prototype.map(), чтобы применить итераторную функцию ко всем элементам массива.
  3. Используйте Array.prototype.reverse() и Array.prototype.findIndex(), чтобы найти соответствующий последний индекс, куда должен быть вставлен элемент, на основе заданной итераторной функции.

Посмотрите на код ниже:

const sortedLastIndexBy = (arr, n, fn) => {
  const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
  const val = fn(n);
  const index = arr
    .map(fn)
    .reverse()
    .findIndex((el) => (isDescending ? val <= el : val >= el));
  return index === -1 ? 0 : arr.length - index;
};

Вот пример:

sortedLastIndexBy([{ x: 4 }, { x: 5 }], { x: 4 }, (o) => o.x); // 1

Резюме

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