Инициализация массива до определенного условия

Beginner

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

Введение

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

Как инициализировать массив до тех пор, пока не будет достигнуто определенное условие

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

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

  1. Создайте пустой массив arr, переменную индекса i и элемент el.
  2. Используйте цикл do...while для добавления элементов в массив с использованием функции mapFn до тех пор, пока функция conditionFn не вернет true для заданного индекса i и элемента el.
  3. Функция conditionFn принимает три аргумента: текущий индекс, предыдущий элемент и сам массив.
  4. Функция mapFn принимает три аргумента: текущий индекс, текущий элемент и сам массив.

Вот код:

const initializeArrayUntil = (conditionFn, mapFn) => {
  const arr = [];
  let i = 0;
  let el = undefined;
  do {
    el = mapFn(i, el, arr);
    arr.push(el);
    i++;
  } while (!conditionFn(i, el, arr));
  return arr;
};

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

initializeArrayUntil(
  (i, val) => val > 10, //conditionFn
  (i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2]) //mapFn
); // [1, 1, 2, 3, 5, 8, 13]

Этот код инициализирует массив последовательностью Фибоначчи до первого числа, превышающего 10. Функция conditionFn проверяет, превышает ли текущее значение 10, а функция mapFn генерирует следующее число в последовательности.

Резюме

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