🧐 НЕ ИСПОЛЬЗУЙ ОБЪЕКТЫ JavaScript, ИСПОЛЬЗУЙ MAP ЧАЩЕ! (Map vs Object Javascript)

Поделиться
HTML-код
  • Опубликовано: 8 июн 2024
  • В данном ролике разберемся когда и для чего следует использовать коллекцию Map вместо объектов в языке JavaScript.
    Рассмотрим преимущества и недостатки объектов, а также влияние динамического добавления и удаления полей объекта на производительность программы.
    #programming #coding #программирование #frontend
    #javascript #css #html #webdevelopment
    🔥🔥🔥 Мой телеграм канал для коммьюнити и ваших предложений: t.me/danilabagrovit
    Тайм коды:
    00:00 Вступление
    00:27 Чем отличается Map от Object в JS?
    00:52 Первое преимущество Map и недостаткиObject
    01:30 Используйте Map для хранения динамических пар ключ-значение
    01:58 Использование Map vs Object в качестве хеш-таблицы
    02:34 Подведение итогов - когда следует использовать Map
    02:59 Спасибо за просмотр!
  • НаукаНаука

Комментарии • 50

  • @onlytryhard80
    @onlytryhard80 Год назад +17

    Осталось не забыть когда надо будет работать с чем-то подобным

  • @viktorsavchenko2628
    @viktorsavchenko2628 Год назад +7

    5 лет во фронтенде и не знал об этом ! Спасибо ! Ждём новых роликов по этой тематике !

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад

      Спасибо большое! Рад стараться :)

  • @gleb2971
    @gleb2971 Год назад +5

    Ну ема-ë!
    Боитесь коллизий - напишите свою хеш-таблицу.
    - Не оптимищировано? - потратьте неделю, напишите на плюсах.
    Нет сотен и сотен тысяч пар ключь-значение - юзайте то, что вам удобно.

  • @shuramishura6709
    @shuramishura6709 Год назад +3

    Очень крутая подача и самое главное без воды!

  • @izzy7541
    @izzy7541 Год назад +6

    Интересно сравнить перфоманс в таких кейсах на фронтенде как общение с сервером. Нам часто приходится делать объекты с динамическими ключами и потом посылать на сервер в json-e, либо делать в локальном хранилище какой-то объект и туда добавлять/удалять/изменять ключи. Что будет быстрее в этом случае? Соблюдать иммутабельность, всегда создавать новый объект и потом делать json.stringify, либо использовать методы Map-a, но делать дополнительно Object.fromEntries перед конвертацией в json

  • @vitaliybatin8968
    @vitaliybatin8968 Год назад +7

    Ну хз, 15 лет юзали, а теперь резко не кошерно стало. По мне ecma заигралась с в видением лишних сущностьей.

  • @VeloVetal
    @VeloVetal Год назад +6

    ещё бы синтаксис добавления/проверки у мапы сделали бы как у объектов -- совсем была бы красота.
    и кстати. некоторые проводили бенчмарки и не выявили существенной прибавки скорости у мапы.

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад +2

      Можно ссылку на эти бенчмарки?)

    • @ITPedant
      @ITPedant Год назад +3

      Я даже больше скажу, мапа работает медленнее на чтение, парам пам пам

  • @romanbayramuk6632
    @romanbayramuk6632 Месяц назад

    если у тебя нагрузка такая, что становтится видна разница в производительность объекта и мапы, стоит может помсмотреть в сторону другого языка? например той же джавы

  • @user-hf8dw2wp6x
    @user-hf8dw2wp6x Год назад +8

    не понятно как ты попал ко мне в реки со 188 подписчиками, но я стал твоим 189. классная подача, продолжай дальше

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад +1

      Спасибо большое!)

    • @yamanbon1500
      @yamanbon1500 Год назад +1

      Блин, согласен! Тоже случайно попал в рекомендации.. Крайне приятная подача материала) желаю удачи в развитии канала! Буду твоим 455 подписчЕком👍

  • @Icanfly-
    @Icanfly- Год назад +8

    Сейчас неокрепшие умы насмотрятся и начнут везде Map пихать вместо обьектов где нужно и где не нужно, и если брать рядовые задачи, то чаще не нужно

    • @ferryterry1873
      @ferryterry1873 Год назад

      Я как-то заикнулся одному знакомому верстальщику , почему он на гриды, вместо флексов не переходит . Так он чуть меня не покусал . Старшим ребяткам , сложно переходить на что-то новое . Вот и начинают ворчать

    • @Icanfly-
      @Icanfly- Год назад +2

      @@ferryterry1873 некоторые старшие ребятки просто знают что такое 'золотой молоток'

  • @dopushki
    @dopushki Год назад +1

    Лайк подписка без вариантов!

  • @victorromanyuk
    @victorromanyuk Год назад +3

    1. Map быстрее в добавлении/удалении
    2. Позволяет работать с хеш-таблицами без багов

  • @islamasankojoev9661
    @islamasankojoev9661 Год назад +3

    плз покажи как сделать в Vscode окошко с картинкой и питомцами

    • @sosikheh
      @sosikheh Год назад +2

      это просто расширение, название над ним же написано

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад +1

      VS code pets расширение)

    • @virnus1
      @virnus1 Год назад

      У тебя слишком много свободного места на рабочем столе?

  • @ruslanyusupov3940
    @ruslanyusupov3940 Месяц назад

    Бенчмарк для добавления элементов
    Map x 1,675 ops/sec ±0.34% (99 runs sampled)
    Object x 1,912 ops/sec ±0.33% (97 runs sampled)
    Бенчмарк для доступа к элементам
    Map x 5,021 ops/sec ±8.43% (96 runs sampled)
    Object x 6,670 ops/sec ±4.45% (94 runs sampled)
    Бенчмарк для удаления элементов
    Map x 15,200 ops/sec ±6.47% (98 runs sampled)
    Object x 6,347 ops/sec ±3.56% (96 runs sampled)

  • @sosikheh
    @sosikheh Год назад +1

    тебя не отвлекает окно со зверушками?

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад +2

      Это больше для зрителя, чтоб не скучал :) Когда работаю - обычно отключаю

  • @izgnann1k
    @izgnann1k Год назад +2

    Чувак ты просто выиграл эту жизнь

  • @user-ny3fg6vl6h
    @user-ny3fg6vl6h Год назад +2

    Ще класна штука, що поля в мапі зберігаються в тому порядку в якому ви їх туда додали, а в об'єкті вони сортуються, тому якщо вам важливо порядок , то тільки мап

  • @aleksprimetv
    @aleksprimetv 14 дней назад

    передай мапу в json)

  • @soulwind7577
    @soulwind7577 Год назад +3

    Мне кажется проще будет написать плагин, который будет пробегаться по коду и при сборке приложения, там где надо подменять объекты на Map ))) , чем переучить JS разрабов перестать использовать объект.

    • @DanilaBagrovStoic
      @DanilaBagrovStoic  Год назад

      Ахахахахах, сто процентов 🤣🤣🤣

  • @puaktopblm
    @puaktopblm Год назад +2

    Показал, что объект наследует методы базового объекта и сказал, что это влияет на производительность.👎

    • @smertvichdreng
      @smertvichdreng Год назад +1

      а оно по-вашему не влияет? если в новом объекте куча других полей еще дополнительно.

    • @puaktopblm
      @puaktopblm Год назад +1

      @@smertvichdreng почитайте о наследовании в js. В объекте есть только одна дополнительная ссылка, которая ведет на прототип.

    • @smertvichdreng
      @smertvichdreng Год назад

      @@puaktopblm Вы откройте инструменты разработчика и посмотрите что из себя представляет объект и чего туда еще понапихано.

    • @kosiak10851
      @kosiak10851 Год назад

      @@smertvichdreng это аргумент к чему? Первый коммент говорит, что база не влияет, потому что она в прототипе, ты как это опровергаешь? "в объект чё только не понапихано"??? Как это отменяет тезис про прототип?

    • @smertvichdreng
      @smertvichdreng Год назад

      @@kosiak10851 говоришь очень путанно, сам-то понимаешь какой ты тезис хочешь доказать или опровергнуть? Что именно на производительность никак по-твоему не влияет? Или в чем твоя претензия?

  • @Maxim9575
    @Maxim9575 10 месяцев назад

    Автор просто не в курсе, но проксировать экземпляр Map невозможно. Не надо тут затирать про Map во все дыры.

    • @user-jx9rw3ip6w
      @user-jx9rw3ip6w Месяц назад

      тоже хотел написать про это это. автор вообще не в курсе за жс так-то.

  • @user-jx9rw3ip6w
    @user-jx9rw3ip6w Месяц назад

    ерунда это все. объекты ничуть не уступают по скорости. объекты основа жс. так что используйте их смело. set довольно полезен как перфоманс штука. а вот map не особо полезен.

    • @Maxim9575
      @Maxim9575 Месяц назад

      Map стоит использовать лишь в случае когда ты хочешь чтобы ключами у тебя были не строки, а допустим объекты, в остальном на мой взгляд с головой хватает обычного объекта.
      Касательно Set, это набор уникальных значений и это нельзя ни к объектам ни к массивам прировнять, разные типы структур.

    • @user-jx9rw3ip6w
      @user-jx9rw3ip6w Месяц назад

      @@Maxim9575 set как хешмап, где ключ является одновременно значением, и уже из этого вытекает уникальность значений. использовать как массив с константным временем доступа.

    • @Maxim9575
      @Maxim9575 Месяц назад

      ​​​@@user-jx9rw3ip6wset и реализует хеш таблицу, суть в том что в роли ключа выступает хеширующая функция, к которой доступа из js нет. Значение которое добавляется в set хешируется спец функцией, собственно хэш значения всегда вычисляется, поэтому доступ быстрый и константный по скорости