Hide
Ух чувствую классы долго буду запоминать )
Hide
у меня вот какой тупой вопрос: в функции для того аргументы пишутся чтобы с ними что то делать? если не писать соответственно и подставлять нечего так? )))
Hide
а в конструкторе также все свойства должны быть продублированы в аргументах?
Hide
class Book { constructor(name, weight, price){ this.name = name this.weight = weight this.price = 0 } upPrice(){ this.price += 100 } }
Hide
const Pushka = new Book('Pushkin', 30)
Hide
хотя если я убираю name из constructor(name, weight, price) все равно тот же результат вроде
Hide
а нет Pushkin записывается в weight
Hide
Hide
чет после работы башка вообще чугунная (((
Александр
constructor - это метод который вызывается при создании экземпляра класса через new
Александр
Та же функция. Параметры этого метода нужны как раз чтобы инициализировать ими экземпляр класса если это нужно
Hide
а если через функцию объекты создавать? не так удобно?
Hide
Александр
https://learn.javascript.ru/class
Александр
class User { constructor(name) { this.name = name; } sayHi() { alert(this.name); } } // доказательство: User - это функция alert(typeof User); // function
Александр
Hide
ааа ты еще через прототипы... я их еще не прошел 😫🤯
Hide
бля не дают мне жс учить
Hide
кот залез на холодильник и начал жрать цветок
Hide
honey
бля не дают мне жс учить
Там некоторые моменты можно просто понять как работают Учить прям не супер обязательно Но может я ошибаюсь Если помнишь ожидаемое поведение то хорошо, можно загуглить всегда
Den
Зачастую нам надо повторять одно и то же действие во многих частях программы. Например, необходимо красиво вывести сообщение при приветствии посетителя, при выходе посетителя с сайта, ещё где-нибудь. Чтобы не повторять один и тот же код во многих местах, придуманы функции. Функции являются основными «строительными блоками» программы.
Den
Функция может принимать в себя аргументы, а может и не принимать.
Den
Так же функция может что то возвращать, а может и не возвращать (в js функция вернет undefined, если ничего из нее не возвращать)
Den
Если твой код внутри функции завязан на каком то переменном значении. Например ты хочешь выводить в консоль имя, но каждый раз оно будет разное. Тогда ты можешь закидывать в функцию аргумент имени)
Den
Вообщем суть в том, что аргументы - это не обязательный атрибут функции
Den
Так же как и возвращаемое значение
Den
В js очень сильные концепции можно делать на функциях, поскольку есть такие вещи, как функции высшего порядка, которые могут принимать в себя функции и возвращать функции. С функциями надо дружить)
Den
honey
honey
(хд простите)
honey
Si 🫧
Как разбить массив на более менее равные массивы? let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Должно получиться: arr1 = [1, 2, 3, 4] arr2 = [5, 6, 7] arr3 = [8,9,10]
Si 🫧
Чтоб равномерно заполнялись массивы
Hide
засада в том, что в первом 4 элемента а в других 3
Hide
Den
Как разбить массив на более менее равные массивы? let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Должно получиться: arr1 = [1, 2, 3, 4] arr2 = [5, 6, 7] arr3 = [8,9,10]
const chunkArrayInGroups = (arr, size) => { const copyArr = [...arr]; const result = []; const arr2D = (num) => { if (num === 0) { return; } result.push(copyArr.splice(0, num)); if (copyArr.length >= size) { arr2D(size); } else { arr2D(copyArr.length); } }; arr2D(size); return result; }; console.log(chunkArrayInGroups([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3));
🏴‍☠️
const chunkArrayInGroups = (arr, size) => { const copyArr = [...arr]; const result = []; const arr2D = (num) => { if (num === 0) { return; } result.push(copyArr.splice(0, num)); if (copyArr.length >= size) { arr2D(size); } else { arr2D(copyArr.length); } }; arr2D(size); return result; }; console.log(chunkArrayInGroups([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3));
У меня такое есть решение const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] const chunkifyArray = (array, chunkSize = 2) => Array.from( { length: Math.ceil(array.length / chunkSize) }, (_, i) => { const start = chunkSize * i return array.slice(start, start + chunkSize) } ) console.log(chunkifyArray(arr))
Александр
Не оптимально, но читаемо )
Hide
О да такое мне понятно 😄
Hide
У него там ифов нет вообще зато стрелочные функции есть
Александр
У него там ифов нет вообще зато стрелочные функции есть
да не, там тоже вполне понятный код Если смотреть как Array.from работает, то шаги такие Он создает новый массив с размером указанным в length(хак такой, тк массив это тоже объект со свойством length) Далее идет функция map Т.е. после создания массива он проходит через map только что созданный массив и заполняет его данными.
Den
https://www.youtube.com/watch?v=khUusY6BOWw
Den
Реально здравые советы
Den
Про мерж реквесты длиннющие - это прям моя беда)
Den
Могу и 3к строк хуйнуть, а потом дед не соглашается ревьювить эти манускрипты)
Den
Den
Но щас стараюсь короче все делать)
Den
А ты сам себе задачки делаешь?
Хз. Мне дают таски, я их пилю. Но у меня много свободы в реализации таски + сами таски дают часто обширные.
Den
Еще не редкость, когда я во время разработки таски нахожу какие то баги, вне таски. Выношу их в issues и когда нет новых фич, все эти issues становятся моими тасками
Den
Den
А если таска большая?
Подробить всегда можно)
Den
Ты на 1 таску можешь завести скок тебе надо мерж реквестов тип
Den
А если таска большая?
Декомпозирую задачу тип
Den
Разбиваю на более мелкие задачи
Алексей
Подробить всегда можно)
Не ну просто типа тебе дают большую таску а потом прилетает претензия что большой пр и тебе нужно было ее декомпозировать? Или как это работает?
Den
Таска и так декомпозирована была на уровне кода
Den
Блять вопрос у тебя заданы кнш странно. Ты наверное хотел спросить, почему я решил, что мои пр слишком длинные?
Den
Почему дед не соглашается ревьювить
Если большой ПР слишком, это тяжело ревьювить)
Den
Сложно понять, про что этот пр
Den
Одно дело, когда у тебя прр скажем 100 строк с норм описанием. Где сразу понятно, о чем этот пр будет и чо делает
Den
Другое дело, где 3к строк и пр делает сразу много всего
Den
И то и то возможно заревьювить
Den
Но в первом случае тебе дадут более качественный фитбек, не только по код стилю, а еще про архитектуру возможно и алгоритмы)
Den
Поскольку ты локализиуешь задачу и пр в маленький кейс
Den
А по большому ПР человек скорее всего сможет только по код стилю чот сказать
Den
ибо вникать в такие объемы в плане архитектуры и алгоритмов физически тяжело