⚛⚛⚛ Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me. Детали тут: makeweb.me/course-js-fullstack-developer Телеграм для связи по курсу: @makewebchatme
Плохое объяснение. Ничего толком непонятно. И увеличивать код на полэкрана тоже плохая идея. Для слепых что ли... И быстронабирающийся код тоже плохая идея. Надо же набирать код и рассказывать, что делает каждая строка и почему.
какие значения? аские? адские? набирающийся код за секунду, который сразу же проматывается тоже топ в данном варианте хэш таблицы не учтен случай, когда по одному ключу добавляются разные данные, если точнее, то по одному ключу буду записываться обьекты в массив, но получить вы сможете только первое значение... т.е. вы записываете данные, тратите память, а получить данные не сможете... было бы актуально сделать перезапись, это не так сложно
Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).
Внутри мы создаём массив, а не объект. Этот массив максимально равномерно заполняем «цепочками», т.е. другими массивами, каждый элемент в цепочке структурка вида «ключ + значение»: можно так же положить туда массив из двух элементов, если хочется формально отказаться от «простых объектов».
очень замудренно сказал с 1:28, (определенному ключу поставить соответствие число, в диапазоне который соответствует этому массиву, таким образом мы можем получить по ключу, индекс в этом массиве, куда мы можем положить значение. Потом соотвественно, для того что-бы достать это значение, мы опять же по этому ключу получаем индекс) особо ничего и не понял
А этого почему нет на видео? return sum % this.store.length; Да круто, что вот выложили уроки, но цена такому уроку если сам лектор не в курсе очем рассказывает?
ниже был комментарий про «превышение размера массива»: > Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме). Замечание верное! Этот момент в видео я упустил. Однако, исходя из того, что массив фиксированной длины - в этом весь смысл, я бы не стал говорить, что лектор не понимает о чем говорит 😊 Спасибо за замечание.
⚛⚛⚛
Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me.
Детали тут: makeweb.me/course-js-fullstack-developer
Телеграм для связи по курсу: @makewebchatme
первые два урока понятные, тут слова глотаешь как будто бы
Видно, что лектор хорошо разбирается в теме, но сама подача для тех, кто уже все это знает и пришел сюда освежить знания.
да видео топ, очень понятно и наглядно
Плохое объяснение. Ничего толком непонятно. И увеличивать код на полэкрана тоже плохая идея. Для слепых что ли... И быстронабирающийся код тоже плохая идея.
Надо же набирать код и рассказывать, что делает каждая строка и почему.
Спасибо большое за объяснение. На классах даже более удобно. Но сама основа алгоритма словаря одинакова что в функции, что в классе
для хэштаблиц есть класс Map
какие значения? аские? адские? набирающийся код за секунду, который сразу же проматывается тоже топ
в данном варианте хэш таблицы не учтен случай, когда по одному ключу добавляются разные данные, если точнее, то по одному ключу буду записываться обьекты в массив, но получить вы сможете только первое значение... т.е. вы записываете данные, тратите память, а получить данные не сможете... было бы актуально сделать перезапись, это не так сложно
молодец . все по делу и понятно.
Супер 🙌
А что будет если количество сохраненных пар {ключ, значение} превысит размер массива?
Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).
Но это касается вычисления индекса массива, а количество пар может быть любым - они просто разложатся в нужные «цепочки».
А мы же по итогу все равно создаем внутри объект с ключами-значениями. Тогда смысл такой реализации? Объясните, пожалуйста
Внутри мы создаём массив, а не объект. Этот массив максимально равномерно заполняем «цепочками», т.е. другими массивами, каждый элемент в цепочке структурка вида «ключ + значение»: можно так же положить туда массив из двух элементов, если хочется формально отказаться от «простых объектов».
Очень грамотный лектор
супер объяснение!
Я правильно понял что в js хеш-таблицы не нужны потому что можно просто сохранять ключ-значение а объект?
очень замудренно сказал с 1:28, (определенному ключу поставить соответствие число, в диапазоне который соответствует этому массиву, таким образом мы можем получить по ключу, индекс в этом массиве, куда мы можем положить значение. Потом соотвественно, для того что-бы достать это значение, мы опять же по этому ключу получаем индекс) особо ничего и не понял
А в чем разница от обычного использования new Map?
Мар это и есть хэш-таблица, просто показана укороченная реализация для понимания
Зачем ускорять написание кода? ведь это самое интересное?
Не всё готовы ждать набора текста
согласна. ни к чему ускорение и приближение
Простите, за возможно глупый вопрос, но как в такой таблице удалять дынные по ключу? Сам не нашел ответ
Можно просто перезаписать значение по ключу, положить туда undefined или null вместо предыдущего значения, и считать это «удалением».
Было бы круто увидеть такой же урок по Linked list и double linked list
@Dmitry Z записал, не прошло и полгода (а, нет, прошло) :-)
Ссылки на песочницу не будет ?
А почему при добавлении не проверить, есть ли уже такой key, value?
зачем приводить такие поверхностные примеры 🤷♂️
А этого почему нет на видео?
return sum % this.store.length;
Да круто, что вот выложили уроки, но цена такому уроку если сам лектор не в курсе очем рассказывает?
ниже был комментарий про «превышение размера массива»:
> Чтобы не выйти за границу массива this.hash всегда должен возвращать значение по модулю длины массива (% this.store.length). Посмотрел ещё раз видео - этого нет: работает только потому что массивы в JavaScript динамические (в плюсах получили бы ошибку в рантайме).
Замечание верное! Этот момент в видео я упустил. Однако, исходя из того, что массив фиксированной длины - в этом весь смысл, я бы не стал говорить, что лектор не понимает о чем говорит 😊
Спасибо за замечание.