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 или выполнить любую другую операцию над индексом.

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

Но почему

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

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

Если да, то слышали ли вы о Union & Find?

Если да то слышали ли вы о Union & Find?

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

    Click on a word to see suggestions or rewrite the whole sentence.
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.