Функция unfold в JavaScript

Beginner

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

Введение

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

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

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

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте цикл while и метод Array.prototype.push(), чтобы вызывать итераторную функцию несколько раз, пока она не вернет false.
  3. Итераторная функция должна принимать один аргумент (seed) и всегда возвращать массив с двумя элементами ([value, nextSeed]) или false, чтобы прекратить выполнение.

Используйте следующий код для реализации функции unfold:

const unfold = (fn, seed) => {
  let result = [],
    val = [null, seed];
  while ((val = fn(val[1]))) result.push(val[0]);
  return result;
};

Вот пример использования функции unfold:

var f = (n) => (n > 50 ? false : [-n, n + 10]);
unfold(f, 10); // [-10, -20, -30, -40, -50]

В результате будет получен массив со значениями, сгенерированными итераторной функцией f начиная от начального значения семени 10. Итераторная функция генерирует массив с двумя элементами на каждом шаге: отрицание текущего значения семени и следующее значение семени, которое увеличивается на 10. Процесс продолжается, пока значение семени не станет больше 50, в этом случае функция возвращает false.

Резюме

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