1.7Kпросмотров
56.4%от подписчиков
2 апреля 2025 г.
questionScore: 1.9K
Как создать массив фиксированной длины? На самом деле, способов множество. Можно создать простой массив пустых элементов: Array(100) Но тогда будет проблема с тем, чтобы его заполнить. Решить её очень просто — можно просто заполнить массив через метод fill: Array(100).fill(0) Или мы можем попробовать вызвать метод map и заполнить массив индексами: Array(100).map((_, index) => index) Пробуйте угадать что получится в ходе выполнения кода выше😂 Ответ: ⬇️ Получится [empty × 100], а не массив индексов) Тут дело в том, что при вызове Array(100) у нас изначально создаётся "разряженный" массив. Это когда под каждый элемент массива даже память не выделяется. Язык просто создаёт пустую структуру с полем length в значении 100 А что будет, если вызвать вот такой код? Object.keys(Array(100)).length Ответ: ноль, потому что значений в массиве по сути то и нет. Поэтому и map не работает Поэтому если мы хотим использовать map, то придётся использовать вот такой хак: [...Array(100)].map((_, index) => index) Такая конструкция уже превратит разряженный массив в массив из сотни undefined и позволит вызвать map Мой любимый способ, который я использую всегда в подобных кейсах: Array.from({ length: 100 }) Мне так привычнее и синтаксически наиболее понятно. Да и ещё фишка в том, что вторым аргументом в from можно сразу передать функцию-маппер: Array.from({ length: 100 }, () => 'привет') Ну или прям совсем в лоб, про такое тоже не забываем: const array = [] for (let i = 0; i < 100; i++) { array.push('progway') } Спасибо за прочтение, это важно для меня ❤️ @prog_way_blog — чат — #web #javascript #theory #data
1.7K
просмотров
1648
символов
Да
эмодзи
Нет
медиа

Другие посты @prog_way_blog

Все посты канала →
Как создать массив фиксированной длины? На самом деле, спосо — @prog_way_blog | PostSniper