Никогда не думал, что со мной это произойдет, но смотрю видео Александа, не для обучения, а в свободное время, как просто что-то интересное) PS: Контент с задачками по JS и вариантами их решения очень зашел.
Первое решение первой задачи на скале было таким (проверил, компилится) (0 to 100).filter(_ % 3 == 0).length На остальные вещи из жс лучше не тратить время имхо (А вообще решение такое: 100 / 3 + 1 :-) )
Огромное спасибо за видео. От Вас много хорошего и полезного узнал и продолжаю узнавать. к первой задаче можно добавить одно действие и улучшить баланс сохранив читаемость: let count = 0; for (let i = 0; i
Я за второй вариант, потому что сразу и без напряга серого вещества понял что он делает. ПыСы: я всегда рад нововведениям, но для меня главное чтобы код был понятен всем - джунам-мидлам-помидорам
Насколько эффективным является такое решение для обмена значений?) if (a < b) { a = a + b; b = a - b; a = a - b; } Или лучше пользоваться решением [a, b] = [b, a] ?
ваше решение более эффективно по памяти, но менее эффективно объему вычислений, а решение с массивами по идее наоборот, плюс более универсальное в плане того что при большем количестве переменных оно будет всё так же элегантно записываться.
На скале (проверил, все компилится) Если четко следовать условию первой))) def f1() = 34 Если x вместо 100 в первой def f1(x: Int) = x / 3 + 1 Либо же, если ракетой по мухе def f1(x: Int) = (0 to x).filter(_ % 3 == 0).length Вторая def f2(x: Int, y: Int) = (List(x, y).sorted match { case List(a, b) => a to b }).mkString(" ") Можно ли вторую также лаконично на жс написать?
честно не js разработчик, больше php. Только все больше приходится погружаться в frontend. в первой задаче вопрос: по вашему решению 0 тоже делится на 3, или ответ все-таки 33? Решение один: let count = 0; for (let i = 0; i < 100; i+=3) { count++; } Второй вариант, ведь нам нужно количество чисел. а не сами числа, поэтому зачем обходить по массиву? count = Math.Floor(100/3); или сокращенно ~~(100/3); это если 0 не считать за решение, но +1 добавить не проблема.
Пайтон/скала розраби такі: [0: 100: 3] Ну ладно мені так подобається: Array(34).map((_, i) => i * 3) Але границя не очевидна зато очевидна кількість. А можливо компілятор навіть сам це переведе в цикл.
Здравствуйте. Существуют ли способы научиться программировать? Уточню вопрос. Я уже учу Js и React. Если с манипуляциями DOM более менее понятно что да как. То вот подобные математические задачи у меня вызывают дикие проблемы. И чет страшновато данное непонимание. Ибо грустновато будет если из за плохой математической базы не получится хотя б в вебдев влиться.
Есть еще миддлы-извращенцы - они на каждый чих создают функции и методы, по названию которых можно понять, что в них происходит, но при этом само тело функции с элементами садомазо. Комменты для новичков, в принципе по названию переменных и функций всё ясно: // функция для создания массива нужной длины с нужным шагом function newArr(l = 100, count = 1) { return Array.from( {length: l+1}, (el, id)=>id*count) } // метод массива для краткой записи фильтра. конечно же не обойтись без строки через eval! Array.prototype.fltr = function (func) { return this.filter(i => eval(func)) } // можем быстро находить кол-во элементов, подходящих для различных условий console.log( newArr().fltr('i%3 === 0').length ) console.log( newArr(1000, 5).fltr('i%20 === 0').length ) console.log( newArr().fltr('i * i < arr.length').length ) ссылка на фиддл: jsfiddle. net/ 56o1j09s/
let count = 0; for (let i = 0; i < 100; i++) { if (i % 3 !== 0) { continue } count += 1 //считаем сколько чисел console.log(i); //все числа кратные 3 } console.log(count); норм?(не смотрел видос)
Вы описали почему a лучше b (хотя очень кратко, есть целые книги и не одна на эту тему), но вы не обьяснили для чего тогда b. П.С. a. читаемость кода b. новые конструкции языка И эта тема настолько ничтожно мало касаема в этом видео, что помимо этого видео (если уже так хотелось затронуть эту тему) в конце лучше список книг сказать (например для начала Чистый код подойдет).
В первой задаче решение через цикл(понравилось).Вторая задача - прямой обмен(понравилось) честно говоря, не знал что так можно, делал бы через доп. переменную.
Так из условия нам нужно найти числа, а не найти количество этих чисел. И никакой счетчик не нужен. Выводить просто в самом цикле эти числа или пушить в пустой(изначально) массив нужные значения. К слову, я бы при решении такой задачи создал бы отдельную функцию, которая бы принимала в себя значения от, до и число, кратное которому нужно найти числа и возвращала бы эта функция массив с нужными значениями. Но опять-таки исходя из практической точки зрения, если такая универсальность вообще нужна. Если нет, то можно указать ещё параметры по умолчанию, которые будут работать при обычном вызове или вовсе убрать параметры и сделать уже по статическим цифрами и тогда назвать функцию соответствующим образом.
Я точно немогу сказать к какой категории я отношусь, может джун а может мидл, пишу только для себя, никогда не работал програмистом, знаю С++, С, ПХП, Джаву, Джаваскрипт, немного ХТМЛ и ЦСС, в основном сайты пишу на ПХП, много где использую ДЖеквери, могу сказать только одно, всегда решаю задачу как можно развернутей, а уж после довожу до идеала и максимально оптимизирую, и терпеть не могу обфусцировпнный код, люблю чтоб когда через год, два сиотришь на код было так как будто инструкцию читаешь, так же стараюсь по максимуму все коментировать, опять же когда через время возвращаешься к своему коду то все предельно понятно и знакомо.
А если без +1 то можно округлять в большую сторону и всё) Math.ceil(100/3); Я не программист, но просматриваю иногда видео, что то могу, но не представляю , что делают и как работают программисты. Одно дело задачки, тут всё ясно и понятно, а другое дело в реальной работе посмотреть. Эта неизвестность и пугает.
@@странствие Вот так можно const x = (()=>{for(let arr = {out:"",sort:[+document.querySelector(".t91").value, +document.querySelector(".t92").value].sort((( a, b ) => a - b))};arr.sort[0]
для мышления, програмирование это ебеший слой абстракциий и тот лучший кто умеет этот слой делать больше, а в реале может пригодится для работы с потоком данных
Объясняю, заказчик просит предположим не трогать логику бекенда на PHP, хотя задача чисто бекендовая. Не важно почему так, но приходится в таких случаях выруливать JS фронтендом с разработкой алгоритма. Ну или предположим чисто на бекенде, в WordPress нету поумолчанию нормальной реализации сессий и плюс нету MVC модели - это исторический момент, в некоторых случаях проще разработать костыль с. Плагинами, херовой тучей вложенности циклов и сложным математическим алгоритмом, где вложенность этих циклов и их область видимости, как раз решается массивами, потому что последнее значение массива не затирает предыдущее. Только так иногда быстрее решить не стандартную задачу для WP, с которой тот же Ларавел справится на раз два.
найс, фп-шечка всегда сложно, потому что заставляет мыслить так как мы не привыкли, первый пример уже более академический, но все же показывает, понимание фп, писать лаконично на фп это как каждый день ходить в качалку)) задачки надо такие решать постоянно, но не согласен что полноценно дает понять как человек мыслит, в реале же решает, архитектура, умение мыслить абстракциями, но задачки тоже этот скилл качают
поставил видео на паузу на 01:43 и высрал такое: for(let i = 0; i < 101; i++) { if (i%3 == 0) { console.log(i); } } это я к какой категории отношусь? Александр, огромное спасибо за Ваши уроки!!