Отображение последовательных элементов

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

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

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

Введение

В этом лабе мы исследуем функцию mapConsecutive в 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/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28479{{"Отображение последовательных элементов"}} javascript/data_types -.-> lab-28479{{"Отображение последовательных элементов"}} javascript/arith_ops -.-> lab-28479{{"Отображение последовательных элементов"}} javascript/comp_ops -.-> lab-28479{{"Отображение последовательных элементов"}} javascript/higher_funcs -.-> lab-28479{{"Отображение последовательных элементов"}} end

Функция для сопоставления последовательных элементов в массиве

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

Эта функция сопоставляет каждый блок из n последовательных элементов в массиве, используя заданную функцию fn. Следуйте шагам:

  • Используйте Array.prototype.slice(), чтобы получить новый массив arr, из которого удалены первые n элементов.
  • Используйте Array.prototype.map() и Array.prototype.slice(), чтобы применить fn к каждому блоку из n последовательных элементов в arr.

Вот код:

const mapConsecutive = (arr, n, fn) =>
  arr.slice(n - 1).map((v, i) => fn(arr.slice(i, i + n)));

Например, вы можете использовать mapConsecutive() для сопоставления каждого блока из 3 последовательных элементов в массиве чисел, соединяя их дефисами:

mapConsecutive([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3, (x) => x.join("-"));
// ['1-2-3', '2-3-4', '3-4-5', '4-5-6', '5-6-7', '6-7-8', '7-8-9', '8-9-10'];

Резюме

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