⚠️ Не забывайте подписываться на наш Канал, у нас здесь каждую неделю свежие полезные видео по фронтенду - ruclips.net/channel/UCmI5YBB9KJ0xLtFtgBX8rfw ❗️😉
тот случай, когда оплаченные курсы преподносят материал в такой сложной форме, что бежишь на ютуб, а здесь бесплатно такие прекрасные видосики - короткие, но емкие и понятные. спасибо большое!
@@МатвейБеликов-ц2б в комментарии имела в виду нетологию, которые мне не понравились. хорошо зашли курсы Ивана Петриченко на юдеми и IT-Camasutra Димыча здесь на ютубе
кастомная функция фильтр: 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}) Здесь без контекста и проверок аргументов, думаю Серега покажет лучше. Это на коленке набросал)
Да все верно! В этом видео для упрощения, не стал разбирать этот edge кейс. На следующем же стриме, где мы с нуля писали все эти методы (свои реализации) уже подробно рассказал про кейс - без дефолтного значения.
Тут есть ошибка. Если не задано начальное значение аккумулятора в .reduce то в колбек на первой итерации попадут 0-й и 1-й элементы массива, т.е. функция будет вызвана на один раз меньше чем длина массива.
Там нет ошибки. Я объяснял базовый принцип работы алгоритма метода, без вдавания в подробности на эдж кейсах. Конечный результат работы метода будет именно тот, что нам нужен. Каждый из этих методов (в особенности reduce) имеет массу нюансов и заслуживает отдельного видео - в том числе и про внутреннюю реализацию. Что я и предлагал в видео.
круто рассказываешь, было бы круто больше примеров из реала добавить, так-то сложно понять зачем нужно суммировать значения массива, хотя, раз отдельный метод для этого сделали видимо это частая задача, но вот мне не особо понятно в какой ситуации это могло бы пригодиться
Благодарю! Рад что понравилось! По поводу суммирования содержимого массива вариантов масса - например посчитать сумму заказа в корзине, или просуммировать и вывести итого в списке выплат сотрудникам. Вариантов - тьма :)
Там если не ошибаюсь небольшая ошибка с reduce. Если не передавать второй аргумент, то acc будет сразу не 0, а первым элементом массива, т е 1, и итерация начнётся с второго элемента, т е еlem === 2
Это не ошибка, а сжатое изложение темы) В этом видео для простоты объяснения мы не разбирали эдж-кейсы (когда отсутствуют начальные значения). У нас на канале есть отдельное длинное видео, где мы делали свою реализацию всех этих методов уже с учетом эдж-кейсов и там уже подробно разбирали эту тему.
Да так и есть. Для простоты объяснения в этом видео я упростил эту часть. В следующем видео где мы делали свою реализацию методов я подробно остановился на дефолтном значении и варианте когда оно не задано
Кстати, неоднократно слушал о том, что невозможно прервать forEach и иже с ними, но можно. Просто выбросить ошибку(throw). Такой кейс был у меня, но очень давно. Возможно что-то изменилось. В любом случае спасибо, ибо нужно уметь не только кодить, но и уметь научить. Я как-раз занимаюсь подобным для новичков в пределах моей работы)
Это ситуация из разряда "почему все говорят, что нельзя микроскопом забивать гвозди? у меня вот получилось...". Так можно и выдернуть комп из розетки чтобы прервать forEach :) задача ведь не только прервать, а дальше продолжить выполнение. С эксепшеном все будет сложнее - чтобы не прерывать дальше код прийдется оборачивать все в try/catch. Короче говоря - гвозди и микроскоп! :) Если иметь целью писать хороший код - это не гуд практика. Ценю твою активность и целеустремленность! Нравится, что ты так глубоко стараешься во всем разобраться. И правильно, что уже учишь! Так все полируется и структурируется еще лучше.
⚠️ Не забывайте подписываться на наш Канал, у нас здесь каждую неделю свежие полезные видео по фронтенду - ruclips.net/channel/UCmI5YBB9KJ0xLtFtgBX8rfw ❗️😉
Дякую за коротке та інформативне відео
Серій дякую. Вас завжди приємно слухати. Гарна подача матеріалу як завжди!
Было бы интересно посмотреть Вашу реализацию методов. Спасибо за полезные видео!
Приятного просмотра! :)
ruclips.net/video/HA8f49Cjkoo/видео.html
тот случай, когда оплаченные курсы преподносят материал в такой сложной форме, что бежишь на ютуб, а здесь бесплатно такие прекрасные видосики - короткие, но емкие и понятные. спасибо большое!
Рад, что было полезно! :) Заходите почаще)
А на каком ресурсе курсы проходишь?
@@МатвейБеликов-ц2б в комментарии имела в виду нетологию, которые мне не понравились. хорошо зашли курсы Ивана Петриченко на юдеми и IT-Camasutra Димыча здесь на ютубе
@@sashainbarcelona я их как раз и прохожу ;)
5 из 5. Несколько раз перечитал в книге эти методы, но здесь кратко, доступно и понятно человек объяснил. Спасибо большое!!!
Благодарю! Рад что было полезно!
как книга называется если не секрет?
Такая подача , все понятно сразу. Всех благ вам.
Спасибо за видос! Насчет самостоятельного написания методов, было бы полезно посмотреть как это реализовать самостоятельно
Благодарим за поддержку! Сделаем!
кастомная функция фильтр:
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})
Здесь без контекста и проверок аргументов, думаю Серега покажет лучше. Это на коленке набросал)
после прочтения главы в книге долго путалося, спасибо за подробное объяснение. стало все понятно)
8:30 По умолчанию в данном кейсе не нулю равен аккумулятор, а первом значению в итеррируемом массиве.
Да все верно! В этом видео для упрощения, не стал разбирать этот edge кейс. На следующем же стриме, где мы с нуля писали все эти методы (свои реализации) уже подробно рассказал про кейс - без дефолтного значения.
если меня попросят сказать что-то на умном, я буду готов))
Шикарная подача, коротко и ясно. Обожаю ваш контент
Я в восторге от контента :) на канале есть все нужное новичку
Рады слышать! Если будут пожелания - пишите в комментариях, мы откликаемся на просьбы наших подписчиков :)
Cвоя реализация методов , спрашиваете ещё, конечно интересно. Ждём с нетерпением , когда покажете)
Обязательно сделаем. Может даже разберем на ближайшем субботнем. live-stream.
Все кроме reduce уже давно использую, теперь буду пробовать редьюс, у него большой потенциал
Отличное видео! Но хотелось бы больше интересных, не типичных примеров использования методов массивов! Спасибо за контент!
Рад ,что понравилось! Разберем в следующих видео.
@@frontendscience можете сказать, название вашего редактор кода?
Спасибо большое за такое простое объяснение!!!! 🙂
Очень хорошо объяснил! Спасибо за видеокурс)
Cпасибо за видео! Хотелось бы видео про реализацию этих методов!!
Спасибо, качественно объяснил
спасибо, освежил в памяти) хотелось бы больше подобных видео
Благодарю за поддержку. Будет)
Спасибо! Лучшее объяснение от методу reduce()
Спасибо за видео!
спасибо за работу
Полезно!
Спасибо)
Благодарим! :)
Побольше бы таких видео! Очень хорошо объяснили! Но хотелось бы узнать, где в пишете код?
Спасибо, наконец то поняла 💕
Пока самый лучший канал по фронту который я видел!
Почему я раньше вас не нашел)
Конечно интересно.
заждались реализации методов по своему, хотя три года ещё не прошло , конечно, продолжаем ожидать ;)
Классно объясняет! Подписка оформлена🙏👍
Просто и максимально быстро)
Спасибо!) Доступно,Быстро и просто)
Рад, что оказалось полезно 👍
Спасибо! Полезное видео.
замечательный канал, отличное видео, спасибо!
Спасибо большое! Рады стараться
спасибо очен полезный видео
Спасибо, доступно очень объяснили!)
Видео крутое! снимайте видео чаще для новичков!
top!
Хотелось бы видео с более сложными примерамм использования метода reduce
Будет! Не забудьте нажать на колокольчик 🔔 😀
Поддерживаю!
еще раз спасибо
Рад, что было полезно! )
Тут есть ошибка. Если не задано начальное значение аккумулятора в .reduce то в колбек на первой итерации попадут 0-й и 1-й элементы массива, т.е. функция будет вызвана на один раз меньше чем длина массива.
Там нет ошибки. Я объяснял базовый принцип работы алгоритма метода, без вдавания в подробности на эдж кейсах. Конечный результат работы метода будет именно тот, что нам нужен. Каждый из этих методов (в особенности reduce) имеет массу нюансов и заслуживает отдельного видео - в том числе и про внутреннюю реализацию. Что я и предлагал в видео.
круто рассказываешь, было бы круто больше примеров из реала добавить, так-то сложно понять зачем нужно суммировать значения массива, хотя, раз отдельный метод для этого сделали видимо это частая задача, но вот мне не особо понятно в какой ситуации это могло бы пригодиться
Благодарю! Рад что понравилось! По поводу суммирования содержимого массива вариантов масса - например посчитать сумму заказа в корзине, или просуммировать и вывести итого в списке выплат сотрудникам. Вариантов - тьма :)
Огонь, спасибо!
Рад, что было полезно
Спасибо, было полезно)
красава не плохо
человек, который отнимет часть ниши в Александра Лущенко))
вызываем нашу функцию редьюсе))
23,04,2023 😎
да было бы супер, если напишите реализацию данных методов!!
Уже есть :) Вот запись стрима: ruclips.net/video/HA8f49Cjkoo/видео.html
Класно
Там если не ошибаюсь небольшая ошибка с reduce. Если не передавать второй аргумент, то acc будет сразу не 0, а первым элементом массива, т е 1, и итерация начнётся с второго элемента, т е еlem === 2
Это не ошибка, а сжатое изложение темы) В этом видео для простоты объяснения мы не разбирали эдж-кейсы (когда отсутствуют начальные значения). У нас на канале есть отдельное длинное видео, где мы делали свою реализацию всех этих методов уже с учетом эдж-кейсов и там уже подробно разбирали эту тему.
Как то даже писал собственную реализацию. Но было бы интересно посмотреть как делают это другие.
Приятного просмотра: ruclips.net/video/HA8f49Cjkoo/видео.html
spasibo
8:30 а разве по умолчанию аккумулятор не равен первому эллементу массива, если мы не указывали ноль в условии?
Да так и есть. Для простоты объяснения в этом видео я упростил эту часть. В следующем видео где мы делали свою реализацию методов я подробно остановился на дефолтном значении и варианте когда оно не задано
Сделайте минипроект онлайн
В планах :) Stay tuned.
@@frontendscience только НЕ на 4 часа видео, пожалуйста, а как "ulbi tv" пилит, ускоряя верстку и рутину, вырезая паузы в видео при монтаже. Спасибо.
как так смотреть результаты в редакторе подскажите?
Да интересно, только у array 31 метод.
@
Front-end Science with Sergey Puzankov а что за extension под vscode для распознания типа переменной? авто тайп скирт
Даже не знаю, что ответить. Я никаких дополнительных экстеншинов не ставил, это все шло из коробки
Все они используются для циклов. А в чем разница между ними?
Предлагаю посмотреть видео :) а то аж обидно, как бы целый видос про это
Очень хочу видео реализации методов
Приятного просмотра! :)
ruclips.net/video/HA8f49Cjkoo/видео.html
Подскажите пожалуйста, как так получилось что расширения файла .js но Вы используете typescript (указываете типы для аргументов функции)?
Я не использовал там тайпскрипт, это новая фича от вебшторм - он анализирует код и сам показывает типы.
@@frontendscience Понял, спасибо за ответ.
Здравствуйте! Какой шрифт используете в редакторе кода?
Jetbrains Mono
как называется тема?
Всё хорошо, но давай уже современным синтаксисом пиши, динозавр)
Все хорошо, меня устраивает то, как я пишу, Дартаньян.
Кстати да, как написать свою реализацию метода map, filter и прочее?
Уже прошел стрим. Приятного просмотра!
ruclips.net/video/HA8f49Cjkoo/видео.html
@@frontendscience да, посмотрел, благодарю. Максимально полезно, буду пересматривать, засыпался на собесе как раз на полифиле метода map.
@@d_r_robot да, это частый вопрос на собесах. Желаю больших успехов! И классного оффера!
Не понятно как работает reduce.
Дуже корисний контент! З Днем незалженості України!
З Днем незалежності України!
Зачем нужны эти методы, если существует универсальный for, который прекрасно справляется с любой из поставленных задач?
Предлагаю посмотреть видео и все станет ясно ;)
Кстати, неоднократно слушал о том, что невозможно прервать forEach и иже с ними, но можно. Просто выбросить ошибку(throw). Такой кейс был у меня, но очень давно. Возможно что-то изменилось. В любом случае спасибо, ибо нужно уметь не только кодить, но и уметь научить. Я как-раз занимаюсь подобным для новичков в пределах моей работы)
Это ситуация из разряда "почему все говорят, что нельзя микроскопом забивать гвозди? у меня вот получилось...". Так можно и выдернуть комп из розетки чтобы прервать forEach :) задача ведь не только прервать, а дальше продолжить выполнение. С эксепшеном все будет сложнее - чтобы не прерывать дальше код прийдется оборачивать все в try/catch. Короче говоря - гвозди и микроскоп! :) Если иметь целью писать хороший код - это не гуд практика.
Ценю твою активность и целеустремленность! Нравится, что ты так глубоко стараешься во всем разобраться. И правильно, что уже учишь! Так все полируется и структурируется еще лучше.
Да круто было бы
Приятного просмотра: ruclips.net/video/HA8f49Cjkoo/видео.html
@@frontendscience спасибо)
Огромное, человеческое спасибо!
Рад, что понравилось!