Алгоритмы на JS #4: хеш-таблицы

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

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

  • @MakewebMeOfficial
    @MakewebMeOfficial  2 года назад

    ⚛⚛⚛
    Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me.
    Детали тут: makeweb.me/course-js-fullstack-developer
    Телеграм для связи по курсу: @makewebchatme

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

    первые два урока понятные, тут слова глотаешь как будто бы

  • @maximrudenko806
    @maximrudenko806 3 года назад +11

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

  • @IlyaKomar
    @IlyaKomar 3 года назад +26

    Плохое объяснение. Ничего толком непонятно. И увеличивать код на полэкрана тоже плохая идея. Для слепых что ли... И быстронабирающийся код тоже плохая идея.
    Надо же набирать код и рассказывать, что делает каждая строка и почему.

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

    Спасибо большое за объяснение. На классах даже более удобно. Но сама основа алгоритма словаря одинакова что в функции, что в классе

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

    для хэштаблиц есть класс Map

  • @andrewdefould1453
    @andrewdefould1453 25 дней назад

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

  • @ИванВоробьев-л4ы
    @ИванВоробьев-л4ы 3 года назад

    молодец . все по делу и понятно.

  • @Руслан-р2ф8р
    @Руслан-р2ф8р 3 года назад

    Супер 🙌

  • @Vnikny
    @Vnikny 4 года назад +2

    А что будет если количество сохраненных пар {ключ, значение} превысит размер массива?

    • @algoseekee
      @algoseekee 4 года назад +1

      Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).

    • @algoseekee
      @algoseekee 4 года назад

      Но это касается вычисления индекса массива, а количество пар может быть любым - они просто разложатся в нужные «цепочки».

  • @user-serji0
    @user-serji0 4 года назад +2

    А мы же по итогу все равно создаем внутри объект с ключами-значениями. Тогда смысл такой реализации? Объясните, пожалуйста

    • @MakewebMeOfficial
      @MakewebMeOfficial  4 года назад

      Внутри мы создаём массив, а не объект. Этот массив максимально равномерно заполняем «цепочками», т.е. другими массивами, каждый элемент в цепочке структурка вида «ключ + значение»: можно так же положить туда массив из двух элементов, если хочется формально отказаться от «простых объектов».

  • @ruslanaskarov5393
    @ruslanaskarov5393 4 года назад +4

    Очень грамотный лектор

  • @СофьяИванова-д6ж

    супер объяснение!

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

    Я правильно понял что в js хеш-таблицы не нужны потому что можно просто сохранять ключ-значение а объект?

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

    очень замудренно сказал с 1:28, (определенному ключу поставить соответствие число, в диапазоне который соответствует этому массиву, таким образом мы можем получить по ключу, индекс в этом массиве, куда мы можем положить значение. Потом соотвественно, для того что-бы достать это значение, мы опять же по этому ключу получаем индекс) особо ничего и не понял

  • @fobiya-d9b
    @fobiya-d9b Год назад

    А в чем разница от обычного использования new Map?

    • @dididie158
      @dididie158 2 месяца назад

      Мар это и есть хэш-таблица, просто показана укороченная реализация для понимания

  • @aleksandrkobelev8868
    @aleksandrkobelev8868 2 года назад +1

    Зачем ускорять написание кода? ведь это самое интересное?

    • @MakewebMeOfficial
      @MakewebMeOfficial  2 года назад

      Не всё готовы ждать набора текста

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

      согласна. ни к чему ускорение и приближение

  • @vladislavkilchevskii2922
    @vladislavkilchevskii2922 3 года назад

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

    • @MakewebMeOfficial
      @MakewebMeOfficial  3 года назад

      Можно просто перезаписать значение по ключу, положить туда undefined или null вместо предыдущего значения, и считать это «удалением».

  • @dmitry9463
    @dmitry9463 4 года назад +1

    Было бы круто увидеть такой же урок по Linked list и double linked list

    • @algoseekee
      @algoseekee 4 года назад +1

      @Dmitry Z записал, не прошло и полгода (а, нет, прошло) :-)

  • @RFOzon
    @RFOzon 4 года назад +1

    Ссылки на песочницу не будет ?

  • @SergiySev
    @SergiySev 3 года назад

    А почему при добавлении не проверить, есть ли уже такой key, value?
    зачем приводить такие поверхностные примеры 🤷‍♂️

    • @SergiySev
      @SergiySev 3 года назад

      А этого почему нет на видео?
      return sum % this.store.length;
      Да круто, что вот выложили уроки, но цена такому уроку если сам лектор не в курсе очем рассказывает?

    • @MakewebMeOfficial
      @MakewebMeOfficial  3 года назад +2

      ниже был комментарий про «превышение размера массива»:
      > Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).
      Замечание верное! Этот момент в видео я упустил. Однако, исходя из того, что массив фиксированной длины - в этом весь смысл, я бы не стал говорить, что лектор не понимает о чем говорит 😊
      Спасибо за замечание.