Инициализация массива с использованием цикла while

Beginner

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

Введение

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

Как инициализировать и заполнить массив с использованием цикла while в JavaScript

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

Функция initializeArrayWhile инициализирует и заполняет массив значениями, сгенерированными функцией, при условии, что оно выполняется. Вот, как это работает:

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

Вот код:

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

Вы можете использовать функцию initializeArrayWhile для инициализации и заполнения массива значениями. Например:

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

Резюме

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