HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Объекты</a></li>
1 <ul><li><a>Объекты</a></li>
2 <li><a>Список структур данных</a></li>
2 <li><a>Список структур данных</a></li>
3 </ul><p>В одной из<a>предыдущих статей</a>нашего сайта мы рассказывали о том, какие основные структуры данных бывают, какими особенностями они обладают. Был представлен общий список структур данных, куда вошли как сложные, так и более простые. Все это теория, которую следует знать. Но более интересен<strong>вопрос практического применения</strong>той либо иной структуры данных в контексте программирования на JavaScript, то есть при разработке программного обеспечения. Мы уже<a>рассказывали про массивы</a>. Предмет сегодняшнего разговора - объекты.</p>
3 </ul><p>В одной из<a>предыдущих статей</a>нашего сайта мы рассказывали о том, какие основные структуры данных бывают, какими особенностями они обладают. Был представлен общий список структур данных, куда вошли как сложные, так и более простые. Все это теория, которую следует знать. Но более интересен<strong>вопрос практического применения</strong>той либо иной структуры данных в контексте программирования на JavaScript, то есть при разработке программного обеспечения. Мы уже<a>рассказывали про массивы</a>. Предмет сегодняшнего разговора - объекты.</p>
4 <h2><strong>Объекты</strong></h2>
4 <h2><strong>Объекты</strong></h2>
5 <p>Специалисты называют объекты второй по популярности структурой данных. На практике объекты применяются как для получения возможности быстрого манипулирования информацией, так и для повышения удобства ее хранения. Но прежде чем изучить практические примеры, давайте рассмотрим общие операции, к тому же, их не так уж и много.</p>
5 <p>Специалисты называют объекты второй по популярности структурой данных. На практике объекты применяются как для получения возможности быстрого манипулирования информацией, так и для повышения удобства ее хранения. Но прежде чем изучить практические примеры, давайте рассмотрим общие операции, к тому же, их не так уж и много.</p>
6 <p>Вот как может выглядеть обычный объект на языке программирования JavaScript:</p>
6 <p>Вот как может выглядеть обычный объект на языке программирования JavaScript:</p>
7 <p>У нас есть возможность получить практически любое свойство по его имени, так как имя представляет собой уникальный идентификатор. Такая операция будет мгновенной.</p>
7 <p>У нас есть возможность получить практически любое свойство по его имени, так как имя представляет собой уникальный идентификатор. Такая операция будет мгновенной.</p>
8 <p>Таким же образом мы можем перезаписать свойства либо даже выполнить создание и запись нового.</p>
8 <p>Таким же образом мы можем перезаписать свойства либо даже выполнить создание и запись нового.</p>
9 <p>Вдобавок к этому, можно запросить все ключи либо все значения объекта. Для этого есть специальные методы, которые возвращают массив значений.</p>
9 <p>Вдобавок к этому, можно запросить все ключи либо все значения объекта. Для этого есть специальные методы, которые возвращают массив значений.</p>
10 <p>Сложность таких методов - О(n), то есть нужно пройтись по всем значениям, создавая из них массив.</p>
10 <p>Сложность таких методов - О(n), то есть нужно пройтись по всем значениям, создавая из них массив.</p>
11 <p>Так как любое свойство объекта является его уникальным идентификатором, по ID разработчик может мгновенно получать, удалять, записывать и обновлять информацию. В результате объекты нередко применяются во вспомогательном качестве при выполнении оптимизаций через маппинг.<strong>Маппинг</strong> предоставляет методы для всех вышеописанных манипуляций, имитируя Map. К примеру, мы можем:</p>
11 <p>Так как любое свойство объекта является его уникальным идентификатором, по ID разработчик может мгновенно получать, удалять, записывать и обновлять информацию. В результате объекты нередко применяются во вспомогательном качестве при выполнении оптимизаций через маппинг.<strong>Маппинг</strong> предоставляет методы для всех вышеописанных манипуляций, имитируя Map. К примеру, мы можем:</p>
12 <ul><li>проверить, существует ли запись (has), а не сравнивать с undefined;</li>
12 <ul><li>проверить, существует ли запись (has), а не сравнивать с undefined;</li>
13 <li>получить по ключу (get), записать (set);</li>
13 <li>получить по ключу (get), записать (set);</li>
14 <li>использовать forEach непосредственно сразу к map, выполняя итерацию на месте и по связкам (ключ, значение);</li>
14 <li>использовать forEach непосредственно сразу к map, выполняя итерацию на месте и по связкам (ключ, значение);</li>
15 <li>и так далее.</li>
15 <li>и так далее.</li>
16 </ul><p>Как же это все будет выглядеть на практике? Давайте вспомним очень популярную на собеседованиях задачу - посчитать число уникальных символов в строке. Решение такой задачи будет тривиальным, плюс будет работать с любыми символами:</p>
16 </ul><p>Как же это все будет выглядеть на практике? Давайте вспомним очень популярную на собеседованиях задачу - посчитать число уникальных символов в строке. Решение такой задачи будет тривиальным, плюс будет работать с любыми символами:</p>
17 <p>Результат вызова - карта по уникальным символам и их числу:</p>
17 <p>Результат вызова - карта по уникальным символам и их числу:</p>
18 <p>Таким образом мы сформировали карту, заполнив ее символами из строки, причем каждый символ является уникальным идентификатором. Этим способом мы могли, что называется, мгновенно проверить наличие символа в карте, получить значение, а потом перезаписать его. И все это работало бы для любого символа и любого языка, включая специальные символы и даже пробелы. То есть идея маппинга в том и заключается, чтобы создать<strong>вспомогательную структуру данных</strong>для определенных операций при алгоритмической сложности О(1).</p>
18 <p>Таким образом мы сформировали карту, заполнив ее символами из строки, причем каждый символ является уникальным идентификатором. Этим способом мы могли, что называется, мгновенно проверить наличие символа в карте, получить значение, а потом перезаписать его. И все это работало бы для любого символа и любого языка, включая специальные символы и даже пробелы. То есть идея маппинга в том и заключается, чтобы создать<strong>вспомогательную структуру данных</strong>для определенных операций при алгоритмической сложности О(1).</p>
19 <h2>Список структур данных</h2>
19 <h2>Список структур данных</h2>
20 <p>Напоследок давайте освежим в памяти основные структуры данных:</p>
20 <p>Напоследок давайте освежим в памяти основные структуры данных:</p>
21 <ol><li><strong>Массивы</strong>. Наиболее популярный способ структуризации. У каждого элемента есть индекс, соответствующий положению этого элемента в массиве.</li>
21 <ol><li><strong>Массивы</strong>. Наиболее популярный способ структуризации. У каждого элемента есть индекс, соответствующий положению этого элемента в массиве.</li>
22 <li><strong>Очереди</strong>. Вспоминаем очередь на кассу и принцип FIFO - First In, First Out.</li>
22 <li><strong>Очереди</strong>. Вспоминаем очередь на кассу и принцип FIFO - First In, First Out.</li>
23 <li><strong>Стеки</strong>. Вспоминаем стопку книг или других предметов и принцип LIFO - Last In, First Out.</li>
23 <li><strong>Стеки</strong>. Вспоминаем стопку книг или других предметов и принцип LIFO - Last In, First Out.</li>
24 <li><strong>Деревья</strong>. Иерархические структуры данных, состоящие из вершин и ребер.</li>
24 <li><strong>Деревья</strong>. Иерархические структуры данных, состоящие из вершин и ребер.</li>
25 <li><strong>Связные списки</strong>. Цепочки узлов, каждый из которых содержит информацию и указатель на следующий узел в этой цепочке.</li>
25 <li><strong>Связные списки</strong>. Цепочки узлов, каждый из которых содержит информацию и указатель на следующий узел в этой цепочке.</li>
26 <li><strong>Графы</strong>. Похожи на деревья, но более сложны. Не вдаваясь в подробности, скажем, что дерево является ограниченной формой графа.</li>
26 <li><strong>Графы</strong>. Похожи на деревья, но более сложны. Не вдаваясь в подробности, скажем, что дерево является ограниченной формой графа.</li>
27 <li><strong>Боры</strong>. Префиксные деревья с древовидной структурой данных, показывающие высокую эффективность при решении задач на строки.</li>
27 <li><strong>Боры</strong>. Префиксные деревья с древовидной структурой данных, показывающие высокую эффективность при решении задач на строки.</li>
28 <li><strong>Хэш-таблицы</strong>. Эта структура данных реализует интерфейс ассоциативного массива и хранит пары "ключ-значение".</li>
28 <li><strong>Хэш-таблицы</strong>. Эта структура данных реализует интерфейс ассоциативного массива и хранит пары "ключ-значение".</li>
29 </ol><p>Помните, что общие знания структур данных помогут не только на собеседовании, но и могут быть полезными при создании программного обеспечения, т. к. при правильном использовании структуризации вы сможете не только успешно выполнять сложные задачи, но и оптимизировать свой код. </p>
29 </ol><p>Помните, что общие знания структур данных помогут не только на собеседовании, но и могут быть полезными при создании программного обеспечения, т. к. при правильном использовании структуризации вы сможете не только успешно выполнять сложные задачи, но и оптимизировать свой код. </p>
30 <p>Также на нашем сайте вам могут быть интересны следующие тематические статьи:</p>
30 <p>Также на нашем сайте вам могут быть интересны следующие тематические статьи:</p>
31 <p>- "<a>Структуры и типы данных</a>";</p>
31 <p>- "<a>Структуры и типы данных</a>";</p>
32 <p>- "<a>Понятие структуры данных для программиста. Массивы</a>";</p>
32 <p>- "<a>Понятие структуры данных для программиста. Массивы</a>";</p>
33 <p>- "<a>Топ-8 структур данных для программиста</a>";</p>
33 <p>- "<a>Топ-8 структур данных для программиста</a>";</p>
34 <p>- "<a>Дерево как структура данных. Двоичные деревья</a>".</p>
34 <p>- "<a>Дерево как структура данных. Двоичные деревья</a>".</p>
35 <p>Предмет следующего разговора - сортировки и их применение в контексте программирования. Следите за обновлениями блога!</p>
35 <p>Предмет следующего разговора - сортировки и их применение в контексте программирования. Следите за обновлениями блога!</p>
36 <a></a><p><em>По материалам сайта: https://dou.ua/lenta/articles/what-you-should-know-about-algorithms/.</em></p>
36 <a></a><p><em>По материалам сайта: https://dou.ua/lenta/articles/what-you-should-know-about-algorithms/.</em></p>
37  
37