⚠️ Не забывайте подписываться на наш Канал, у нас здесь каждую неделю свежие полезные видео по фронтенду - ua-cam.com/channels/mI5YBB9KJ0xLtFtgBX8rfw.html ❗️😉
тот случай, когда оплаченные курсы преподносят материал в такой сложной форме, что бежишь на ютуб, а здесь бесплатно такие прекрасные видосики - короткие, но емкие и понятные. спасибо большое!
@@МатвейБеликов-ц2б в комментарии имела в виду нетологию, которые мне не понравились. хорошо зашли курсы Ивана Петриченко на юдеми и IT-Camasutra Димыча здесь на ютубе
Да все верно! В этом видео для упрощения, не стал разбирать этот edge кейс. На следующем же стриме, где мы с нуля писали все эти методы (свои реализации) уже подробно рассказал про кейс - без дефолтного значения.
кастомная функция фильтр: const filter = (arr, callback) => { const result = [] for (let i = 0; i < arr.length; i++) { if (callback(arr[i], i, arr)) { result.push(arr[i]) } } return result } кастомный метод прототипа: Array.prototype.customFilter = function (callback) { const result = [] for (let i = 0; i typeof item === 'number' const newArray = filter(arr, isNumber) const customArray = arr.customFilter(isNumber) const evenArray = arr.customFilter((_, index) => index % 2 === 0) console.log({newArray, customArray, evenArray}) Здесь без контекста и проверок аргументов, думаю Серега покажет лучше. Это на коленке набросал)
Да так и есть. Для простоты объяснения в этом видео я упростил эту часть. В следующем видео где мы делали свою реализацию методов я подробно остановился на дефолтном значении и варианте когда оно не задано
Кстати, неоднократно слушал о том, что невозможно прервать forEach и иже с ними, но можно. Просто выбросить ошибку(throw). Такой кейс был у меня, но очень давно. Возможно что-то изменилось. В любом случае спасибо, ибо нужно уметь не только кодить, но и уметь научить. Я как-раз занимаюсь подобным для новичков в пределах моей работы)
Это ситуация из разряда "почему все говорят, что нельзя микроскопом забивать гвозди? у меня вот получилось...". Так можно и выдернуть комп из розетки чтобы прервать forEach :) задача ведь не только прервать, а дальше продолжить выполнение. С эксепшеном все будет сложнее - чтобы не прерывать дальше код прийдется оборачивать все в try/catch. Короче говоря - гвозди и микроскоп! :) Если иметь целью писать хороший код - это не гуд практика. Ценю твою активность и целеустремленность! Нравится, что ты так глубоко стараешься во всем разобраться. И правильно, что уже учишь! Так все полируется и структурируется еще лучше.
Там если не ошибаюсь небольшая ошибка с reduce. Если не передавать второй аргумент, то acc будет сразу не 0, а первым элементом массива, т е 1, и итерация начнётся с второго элемента, т е еlem === 2
Это не ошибка, а сжатое изложение темы) В этом видео для простоты объяснения мы не разбирали эдж-кейсы (когда отсутствуют начальные значения). У нас на канале есть отдельное длинное видео, где мы делали свою реализацию всех этих методов уже с учетом эдж-кейсов и там уже подробно разбирали эту тему.
Тут есть ошибка. Если не задано начальное значение аккумулятора в .reduce то в колбек на первой итерации попадут 0-й и 1-й элементы массива, т.е. функция будет вызвана на один раз меньше чем длина массива.
Там нет ошибки. Я объяснял базовый принцип работы алгоритма метода, без вдавания в подробности на эдж кейсах. Конечный результат работы метода будет именно тот, что нам нужен. Каждый из этих методов (в особенности reduce) имеет массу нюансов и заслуживает отдельного видео - в том числе и про внутреннюю реализацию. Что я и предлагал в видео.
круто рассказываешь, было бы круто больше примеров из реала добавить, так-то сложно понять зачем нужно суммировать значения массива, хотя, раз отдельный метод для этого сделали видимо это частая задача, но вот мне не особо понятно в какой ситуации это могло бы пригодиться
Благодарю! Рад что понравилось! По поводу суммирования содержимого массива вариантов масса - например посчитать сумму заказа в корзине, или просуммировать и вывести итого в списке выплат сотрудникам. Вариантов - тьма :)
⚠️ Не забывайте подписываться на наш Канал, у нас здесь каждую неделю свежие полезные видео по фронтенду - ua-cam.com/channels/mI5YBB9KJ0xLtFtgBX8rfw.html ❗️😉
тот случай, когда оплаченные курсы преподносят материал в такой сложной форме, что бежишь на ютуб, а здесь бесплатно такие прекрасные видосики - короткие, но емкие и понятные. спасибо большое!
Рад, что было полезно! :) Заходите почаще)
А на каком ресурсе курсы проходишь?
@@МатвейБеликов-ц2б в комментарии имела в виду нетологию, которые мне не понравились. хорошо зашли курсы Ивана Петриченко на юдеми и IT-Camasutra Димыча здесь на ютубе
@@digital_nomad_spain я их как раз и прохожу ;)
Дякую за коротке та інформативне відео
Серій дякую. Вас завжди приємно слухати. Гарна подача матеріалу як завжди!
Такая подача , все понятно сразу. Всех благ вам.
после прочтения главы в книге долго путалося, спасибо за подробное объяснение. стало все понятно)
Шикарная подача, коротко и ясно. Обожаю ваш контент
5 из 5. Несколько раз перечитал в книге эти методы, но здесь кратко, доступно и понятно человек объяснил. Спасибо большое!!!
Благодарю! Рад что было полезно!
как книга называется если не секрет?
8:30 По умолчанию в данном кейсе не нулю равен аккумулятор, а первом значению в итеррируемом массиве.
Да все верно! В этом видео для упрощения, не стал разбирать этот edge кейс. На следующем же стриме, где мы с нуля писали все эти методы (свои реализации) уже подробно рассказал про кейс - без дефолтного значения.
если меня попросят сказать что-то на умном, я буду готов))
Cпасибо за видео! Хотелось бы видео про реализацию этих методов!!
Я в восторге от контента :) на канале есть все нужное новичку
Рады слышать! Если будут пожелания - пишите в комментариях, мы откликаемся на просьбы наших подписчиков :)
Было бы интересно посмотреть Вашу реализацию методов. Спасибо за полезные видео!
Приятного просмотра! :)
ua-cam.com/video/HA8f49Cjkoo/v-deo.html
Побольше бы таких видео! Очень хорошо объяснили! Но хотелось бы узнать, где в пишете код?
Пока самый лучший канал по фронту который я видел!
Почему я раньше вас не нашел)
Спасибо, качественно объяснил
Спасибо большое за такое простое объяснение!!!! 🙂
Спасибо за видос! Насчет самостоятельного написания методов, было бы полезно посмотреть как это реализовать самостоятельно
Благодарим за поддержку! Сделаем!
кастомная функция фильтр:
const filter = (arr, callback) => {
const result = []
for (let i = 0; i < arr.length; i++) {
if (callback(arr[i], i, arr)) {
result.push(arr[i])
}
}
return result
}
кастомный метод прототипа:
Array.prototype.customFilter = function (callback) {
const result = []
for (let i = 0; i typeof item === 'number'
const newArray = filter(arr, isNumber)
const customArray = arr.customFilter(isNumber)
const evenArray = arr.customFilter((_, index) => index % 2 === 0)
console.log({newArray, customArray, evenArray})
Здесь без контекста и проверок аргументов, думаю Серега покажет лучше. Это на коленке набросал)
Спасибо! Лучшее объяснение от методу reduce()
Спасибо за видео!
Спасибо, наконец то поняла 💕
Cвоя реализация методов , спрашиваете ещё, конечно интересно. Ждём с нетерпением , когда покажете)
Обязательно сделаем. Может даже разберем на ближайшем субботнем. live-stream.
спасибо за работу
Очень хорошо объяснил! Спасибо за видеокурс)
Классно объясняет! Подписка оформлена🙏👍
спасибо, освежил в памяти) хотелось бы больше подобных видео
Благодарю за поддержку. Будет)
Отличное видео! Но хотелось бы больше интересных, не типичных примеров использования методов массивов! Спасибо за контент!
Рад ,что понравилось! Разберем в следующих видео.
@@frontendscience можете сказать, название вашего редактор кода?
Все кроме reduce уже давно использую, теперь буду пробовать редьюс, у него большой потенциал
Конечно интересно.
8:30 а разве по умолчанию аккумулятор не равен первому эллементу массива, если мы не указывали ноль в условии?
Да так и есть. Для простоты объяснения в этом видео я упростил эту часть. В следующем видео где мы делали свою реализацию методов я подробно остановился на дефолтном значении и варианте когда оно не задано
Полезно!
Спасибо)
Благодарим! :)
Спасибо! Полезное видео.
Просто и максимально быстро)
замечательный канал, отличное видео, спасибо!
Спасибо большое! Рады стараться
спасибо очен полезный видео
Огромное, человеческое спасибо!
Рад, что понравилось!
заждались реализации методов по своему, хотя три года ещё не прошло , конечно, продолжаем ожидать ;)
Спасибо, доступно очень объяснили!)
Огонь, спасибо!
Рад, что было полезно
Видео крутое! снимайте видео чаще для новичков!
Кстати, неоднократно слушал о том, что невозможно прервать forEach и иже с ними, но можно. Просто выбросить ошибку(throw). Такой кейс был у меня, но очень давно. Возможно что-то изменилось. В любом случае спасибо, ибо нужно уметь не только кодить, но и уметь научить. Я как-раз занимаюсь подобным для новичков в пределах моей работы)
Это ситуация из разряда "почему все говорят, что нельзя микроскопом забивать гвозди? у меня вот получилось...". Так можно и выдернуть комп из розетки чтобы прервать forEach :) задача ведь не только прервать, а дальше продолжить выполнение. С эксепшеном все будет сложнее - чтобы не прерывать дальше код прийдется оборачивать все в try/catch. Короче говоря - гвозди и микроскоп! :) Если иметь целью писать хороший код - это не гуд практика.
Ценю твою активность и целеустремленность! Нравится, что ты так глубоко стараешься во всем разобраться. И правильно, что уже учишь! Так все полируется и структурируется еще лучше.
еще раз спасибо
Рад, что было полезно! )
Спасибо, было полезно)
23,04,2023 😎
Хотелось бы видео с более сложными примерамм использования метода reduce
Будет! Не забудьте нажать на колокольчик 🔔 😀
Поддерживаю!
Там если не ошибаюсь небольшая ошибка с reduce. Если не передавать второй аргумент, то acc будет сразу не 0, а первым элементом массива, т е 1, и итерация начнётся с второго элемента, т е еlem === 2
Это не ошибка, а сжатое изложение темы) В этом видео для простоты объяснения мы не разбирали эдж-кейсы (когда отсутствуют начальные значения). У нас на канале есть отдельное длинное видео, где мы делали свою реализацию всех этих методов уже с учетом эдж-кейсов и там уже подробно разбирали эту тему.
красава не плохо
Тут есть ошибка. Если не задано начальное значение аккумулятора в .reduce то в колбек на первой итерации попадут 0-й и 1-й элементы массива, т.е. функция будет вызвана на один раз меньше чем длина массива.
Там нет ошибки. Я объяснял базовый принцип работы алгоритма метода, без вдавания в подробности на эдж кейсах. Конечный результат работы метода будет именно тот, что нам нужен. Каждый из этих методов (в особенности reduce) имеет массу нюансов и заслуживает отдельного видео - в том числе и про внутреннюю реализацию. Что я и предлагал в видео.
круто рассказываешь, было бы круто больше примеров из реала добавить, так-то сложно понять зачем нужно суммировать значения массива, хотя, раз отдельный метод для этого сделали видимо это частая задача, но вот мне не особо понятно в какой ситуации это могло бы пригодиться
Благодарю! Рад что понравилось! По поводу суммирования содержимого массива вариантов масса - например посчитать сумму заказа в корзине, или просуммировать и вывести итого в списке выплат сотрудникам. Вариантов - тьма :)
top!
да было бы супер, если напишите реализацию данных методов!!
Уже есть :) Вот запись стрима: ua-cam.com/video/HA8f49Cjkoo/v-deo.html
@
Front-end Science with Sergey Puzankov а что за extension под vscode для распознания типа переменной? авто тайп скирт
Даже не знаю, что ответить. Я никаких дополнительных экстеншинов не ставил, это все шло из коробки
как так смотреть результаты в редакторе подскажите?
Как то даже писал собственную реализацию. Но было бы интересно посмотреть как делают это другие.
Приятного просмотра: ua-cam.com/video/HA8f49Cjkoo/v-deo.html
человек, который отнимет часть ниши в Александра Лущенко))
Класно
Подскажите пожалуйста, как так получилось что расширения файла .js но Вы используете typescript (указываете типы для аргументов функции)?
Я не использовал там тайпскрипт, это новая фича от вебшторм - он анализирует код и сам показывает типы.
@@frontendscience Понял, спасибо за ответ.
Кстати да, как написать свою реализацию метода map, filter и прочее?
Уже прошел стрим. Приятного просмотра!
ua-cam.com/video/HA8f49Cjkoo/v-deo.html
@@frontendscience да, посмотрел, благодарю. Максимально полезно, буду пересматривать, засыпался на собесе как раз на полифиле метода map.
@@d_r_robot да, это частый вопрос на собесах. Желаю больших успехов! И классного оффера!
Здравствуйте! Какой шрифт используете в редакторе кода?
Jetbrains Mono
spasibo
Все они используются для циклов. А в чем разница между ними?
Предлагаю посмотреть видео :) а то аж обидно, как бы целый видос про это
Да интересно, только у array 31 метод.
как называется тема?
вызываем нашу функцию редьюсе))
Сделайте минипроект онлайн
В планах :) Stay tuned.
@@frontendscience только НЕ на 4 часа видео, пожалуйста, а как "ulbi tv" пилит, ускоряя верстку и рутину, вырезая паузы в видео при монтаже. Спасибо.
Да круто было бы
Приятного просмотра: ua-cam.com/video/HA8f49Cjkoo/v-deo.html
@@frontendscience спасибо)
Очень хочу видео реализации методов
Приятного просмотра! :)
ua-cam.com/video/HA8f49Cjkoo/v-deo.html
Не понятно как работает reduce.
Всё хорошо, но давай уже современным синтаксисом пиши, динозавр)
Все хорошо, меня устраивает то, как я пишу, Дартаньян.
Дуже корисний контент! З Днем незалженості України!
З Днем незалежності України!
Зачем нужны эти методы, если существует универсальный for, который прекрасно справляется с любой из поставленных задач?
Предлагаю посмотреть видео и все станет ясно ;)