Инициализация n-мерного массива

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

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

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

Введение

В этом практическом занятии мы изучим, как создавать n-мерные массивы с заданным значением с использованием рекурсии в JavaScript. Мы будем использовать методы Array.from() и Array.prototype.map() для генерации строк, каждая из которых представляет собой новый массив, инициализированный с использованием initializeNDArray(). В конце этого практического занятия вы глубоко освоите, как создавать многомерные массивы в JavaScript и как использовать рекурсию для выполнения этой задачи.

Как инициализировать n-мерный массив в JavaScript

Для создания n-мерного массива в JavaScript можно использовать функцию initializeNDArray. Эта функция принимает значение и любое количество размерностей в качестве аргументов и возвращает новый массив, инициализированный этим значением.

Для использования initializeNDArray можно следовать следующим шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать программирование.
  2. Используйте рекурсию для создания массива с заданным количеством размерностей.
  3. Используйте Array.from() и Array.prototype.map(), чтобы сгенерировать строки, где каждая строка представляет собой новый массив, инициализированный с использованием initializeNDArray().

Вот код для функции initializeNDArray:

const initializeNDArray = (val, ...args) =>
  args.length === 0
    ? val
    : Array.from({ length: args[0] }).map(() =>
        initializeNDArray(val, ...args.slice(1))
      );

Затем можно вызвать initializeNDArray с нужным значением и количеством размерностей. Например:

initializeNDArray(1, 3); // [1, 1, 1]
initializeNDArray(5, 2, 2, 2); // [[[5, 5], [5, 5]], [[5, 5], [5, 5]]]

Резюме

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