T - 1Bits: Генерация последовательного массива

RedDeveloper
27.02.2023 14:10
T - 1Bits: Генерация последовательного массива

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

Постановка проблемы

Для заданного размера создайте массив, ранг и значение которого равно 1. Ниже приведена наиболее простая реализация этой задачи.

const rank = [];
const size = 10;

for (let i = 0; i < size; i++) {
  rank[i] = 1;
}

Метод for пришел как непосредственное решение, но есть и другой способ.

Еще одно решение

Если переиначить слова требования, то его можно записать как "создать массив размера N и заполнить его статическим значением v".

Welcome to DeepL Write!

This tool allows you to correct mistakes, rephrase sentences and improve your writing. The green highlight on the right indicates a change.

Click on a word to see suggestions or rewrite the whole sentence.
const rank = Array(10).fill(1);
console.info(rank); // [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Конечный индекс (по умолчанию array.length). Возвращает измененный массив.

👍 Лаконично и читабельно. Давайте перейдем к следующему вопросу.

Постановка задачи - 2Метод fill() изменяет все элементы массива на статическое значение, начиная с начального индекса (по умолчанию 0) и заканчивая

const data = [];
const size = 10;

for (let i = 0; i < size; i++) {
  data[i] = i;
}

Ex в качестве своего значения. Ниже приведена наиболее простая реализация этой задачи.

Наверняка существуют и другие способы, которые нам следует изучить.

Дальнейшие решения

Требование может быть переписано как "построить массив размера N и заполнить его индексом i".

const rank = Array(10).fill().map((_, i) => i);
console.info(rank); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Для этого воспользуемся функцией fill. Но здесь нужна небольшая помощь. Для заданного размера создайте массив, данные с индексом ind

🤔 Что еще?

Поскольку в качестве значения заполняется индекс массива, на ум приходит ключ.

Array.prototype.keys()
const data = [...new Array(10).keys()];
console.info(data); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Метод keys() возвращает новый объект Array Iterator, который содержит ключи для каждого индекса в массиве.

const data = [...new Array(10).keys()].map(i => i + 1);
console.info(data); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Для этого воспользуемся функцией fill. Но здесь нужна небольшая помощь. Для заданного размера создайте массив, данные с индексом ind

🤔 Что еще?

Array.from()
const data = Array.from({ length: 10 }, (v, i) => i);
console.info(data); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Статический метод Array.from() создает новый, неглубоко скопированный экземпляр Array из итерабельного или массивоподобного объекта.

Здесь сигнатура метода from() - `Array.from(arrayLike, (element, index) => { /* ... */ }), где мы передаем объект array like, который сообщает длину массива, а затем функцию (скажем, функцию map) для заполнения значения по каждому индексу.

Если вы все еще запутались (как и я), посмотрите здесь для подробного объяснения.

Это можно легко изменить, чтобы увеличить значение на 1 или выполнить любую другую операцию над индексом.

Комбинаций может быть больше, и я уверен, что чем больше мы будем искать, тем больше мы найдем. В этом и заключается прелесть программирования - это кроличья нора.

Но почему

Слышали ли вы о графиках?

Если да, то слышали ли вы о разделяемых множествах?

Если да, то вы помните, что инициализация, выполняемая при реализации Disjoint sets, требует двух массивов, которые обладают теми же свойствами, которые мы указали и решили в этой короткой заметке.

    Click on a word to see suggestions or rewrite the whole sentence.
Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP

23.03.2023 11:48

В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.

От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React

23.03.2023 08:01

Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои навыки работы с React.

БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS

23.03.2023 02:41

Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и чувствовал, что больше не хочу смотреть на длинный код CSS с нарушенной структурой.

Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow

22.03.2023 13:41

В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По мере того как растут ожидания клиентов в отношении лучшего UI/UX, увеличивается конкуренция и возрастает потребность в производительности разработчиков,...

Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?

22.03.2023 08:55

Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.

Конфигурация Jest в angular
Конфигурация Jest в angular

22.03.2023 08:25

В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.