Nolra / front_course_2023

charity course
7 stars 0 forks source link

JS Class / Recursion #12

Open Nolra opened 1 year ago

Nolra commented 1 year ago

Code: https://github.com/Nolra/front-course/tree/JS-class-recursion

Материалы: https://learn.javascript.ru/classes https://learn.javascript.ru/recursion https://doka.guide/js/recursion/

Домашнее задание:

1. Наследование и прототипирование (классы)

Реализуйте класс Student, 
который будет наследовать от класса User. 
Этот класс должен иметь следующие свойства: 
name (имя, наследуется от User), 
surname (фамилия, наследуется от User), 
year (год поступления в вуз, не наследуется от User).

Класс должен иметь метод getFullName() (наследуется от User), 
с помощью которого можно вывести одновременно имя и фамилию студента.

Также класс должен иметь метод getCourse() (не наследуется от User), 
который будет выводить текущий курс студента (от 1 до 5). 

Курс вычисляется так: нужно от текущего года отнять год поступления в вуз. 
Текущий год получите самостоятельно.

Вот так должен работать наш класс:

let student = new Student('Иван', 'Иванов', 2020);
console.log(student.name); //выведет 'Иван'
console.log(student.surname); //выведет 'Иванов'
console.log(student.getFullName()); //выведет 'Иван Иванов'
console.log(student.year); //выведет 2020
console.log(student.getCourse()); //выведет 3 - третий курс, так как текущий год 2023

Вот так должен выглядеть класс User, от которого наследуется наш Student:

class User {
    constructor(name, surname) {
        this.name = name;
        this.surname = surname;
    }
    getFullName() {
        return this.name + ' ' + this.surname;
    }
}

2. Рекурсия.

Найти максимальное число в массиве, содержащем числа или другие массивы чисел
Решите это итеративно (через цикл) и отдельно затем рекурсивно.

let numbers = [2, 4, 10, [12, 4, [100, 99], 4], [3, 2, 99], 0];
voidaugust commented 1 year ago

https://github.com/pashbespaloff/homework/tree/classes-recursion

nedostatoksna commented 1 year ago

https://github.com/nedostatoksna/course-front-end/tree/class-recursion

Nolra commented 1 year ago

https://github.com/pashbespaloff/homework/tree/classes-recursion

Первая задача, отлично, в конструкторе потомка можем использовать частично конструктор родителя с помощью super

class Student extends User {
  constructor(name, surname, year) {
    super(name, surname);
    this.year = year;
  };
  ...

По рекурсиям, отлично

Nolra commented 1 year ago

https://github.com/nedostatoksna/course-front-end/tree/class-recursion

Комментарий такой же как Паше, только (по второй задаче) проверку в данном случае лучше делать именно на массив Array.isArray(arr), кроме того задача по рекурсиям решена в обоих случаях рекурсивно, просто в первом случае декларативно. Это не принципиально, главное что есть решение через рекурсивную функцию.

NastyaKamalova commented 1 year ago

https://github.com/NastyaKamalova/firstCSS/tree/HomeWork_12