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
а если через функцию объекты создавать? не так удобно?
Александр
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
Функция может принимать в себя аргументы, а может и не принимать.
Den
Так же функция может что то возвращать, а может и не возвращать (в js функция вернет undefined, если ничего из нее не возвращать)
Den
Если твой код внутри функции завязан на каком то переменном значении.
Например ты хочешь выводить в консоль имя, но каждый раз оно будет разное.
Тогда ты можешь закидывать в функцию аргумент имени)
Den
Вообщем суть в том, что аргументы - это не обязательный атрибут функции
Den
Так же как и возвращаемое значение
Den
В js очень сильные концепции можно делать на функциях, поскольку есть такие вещи, как функции высшего порядка, которые могут принимать в себя функции и возвращать функции.
С функциями надо дружить)
Den
honey
honey
(хд простите)
Hide
Hide
honey
Den
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));
Si 🫧
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
У меня такое есть решение
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))
Пипец это какой то не съедобный js 😱
Александр
Александр
Не оптимально, но читаемо )
Hide
Hide
У него там ифов нет вообще зато стрелочные функции есть
Александр
У него там ифов нет вообще зато стрелочные функции есть
да не, там тоже вполне понятный код
Если смотреть как Array.from работает, то шаги такие
Он создает новый массив с размером указанным в length(хак такой, тк массив это тоже объект со свойством length)
Далее идет функция map
Т.е. после создания массива он проходит через map только что созданный массив и заполняет его данными.
Den
https://www.youtube.com/watch?v=khUusY6BOWw
Den
Реально здравые советы
Den
Про мерж реквесты длиннющие - это прям моя беда)
Den
Могу и 3к строк хуйнуть, а потом дед не соглашается ревьювить эти манускрипты)
Den
Den
Но щас стараюсь короче все делать)
Алексей
Den
Еще не редкость, когда я во время разработки таски нахожу какие то баги, вне таски. Выношу их в issues и когда нет новых фич, все эти issues становятся моими тасками
Den
Алексей
Den
Ты на 1 таску можешь завести скок тебе надо мерж реквестов тип
Den
Разбиваю на более мелкие задачи
Алексей
Подробить всегда можно)
Не ну просто типа тебе дают большую таску а потом прилетает претензия что большой пр и тебе нужно было ее декомпозировать? Или как это работает?
Den
Den
Таска и так декомпозирована была на уровне кода
Den
Блять вопрос у тебя заданы кнш странно.
Ты наверное хотел спросить, почему я решил, что мои пр слишком длинные?
Алексей
Den
Сложно понять, про что этот пр
Den
Одно дело, когда у тебя прр скажем 100 строк с норм описанием. Где сразу понятно, о чем этот пр будет и чо делает
Den
Другое дело, где 3к строк и пр делает сразу много всего
Den
И то и то возможно заревьювить
Den
Но в первом случае тебе дадут более качественный фитбек, не только по код стилю, а еще про архитектуру возможно и алгоритмы)
Den
Поскольку ты локализиуешь задачу и пр в маленький кейс
Den
А по большому ПР человек скорее всего сможет только по код стилю чот сказать
Den
ибо вникать в такие объемы в плане архитектуры и алгоритмов физически тяжело