Введение
В этом лабораторном задании мы будем изучать функцию unfold() в JavaScript. Эта функция позволяет создавать массив, вызывая итераторную функцию с начальным значением семени несколько раз, пока функция не вернет false. В ходе выполнения этого лабораторного задания мы узнаем, как использовать функцию unfold() и как она может быть использована для упрощения некоторых задач программирования.
Создание массива с использованием итераторной функции и начального значения семени
Чтобы создать массив с использованием итераторной функции и начального значения семени, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте цикл
whileи методArray.prototype.push(), чтобы вызывать итераторную функцию несколько раз, пока она не вернетfalse. - Итераторная функция должна принимать один аргумент (
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, чтобы улучшить свои навыки.