Показать сообщение отдельно
  #1 (permalink)  
Старый 03.11.2021, 16:22
Новичок на форуме
Отправить личное сообщение для it_liza Посмотреть профиль Найти все сообщения от it_liza
 
Регистрация: 03.11.2021
Сообщений: 5

Рендер юзеров системы
Добрый день! Запуталась, помогите, пожалуйста)
Есть массив юзеров. Я хочу вывести в консоль что то типа
Im ${student.name}, im a ${student.role}, ${student.age} years old, learning ${student.courses}. Но в консоль выводит следующее
"Im Jack Smith, im a student, 23 years old, learning [object Object],[object Object]". Как вывести запись в нормальном виде, чтобы был список курсов? Мне нужно еще несколько моментов решить, поэтому будет несколько наследований классов и методов, но пока хотя бы для класса Студенты.
const users = [
    {
        name: "Jack Smith",
        age: 23,
        img: "https://www.svgrepo.com/show/10103/man.svg",
        role: "student",
        courses: [
            {
                "title": "Front-end Pro",
                "mark": 20
            },
            {
                "title": "Java Enterprise",
                "mark": 100
            }
        ]
    },
    {
        name: "Amal Smith",
        age: 20,
        img: "https://www.svgrepo.com/show/113567/indian.svg",
        role: "student"
    },
    {
        name: "Noah Smith",
        age: 43,
        img: "https://www.svgrepo.com/show/48218/man.svg",
        role: "student",
        courses: [
            {
                "title": "Front-end Pro",
                "mark": 50
            }
        ]
    },
    {
        name: "Charlie Smith",
        age: 18,
        img: "https://www.svgrepo.com/show/169746/man.svg",
        role: "student",
        courses: [
            {
                "title": "Front-end Pro",
                "mark": 75
            },
            {
                "title": "Java Enterprise",
                "mark": 23
            }]
    },
    {
        name: "Emily Smith",
        age: 30,
        img: "https://www.svgrepo.com/show/161467/woman.svg",
        role: "admin",
        courses: [
            {
                "title": "Front-end Pro",
                "score": 10,
                "lector": "Leo Smith"
            },
            {
                "title": "Java Enterprise",
                "score": 50,
                "lector": "David Smith"
            },
            {
                "title": "QA",
                "score": 75,
                "lector": "Emilie Smith"
            }]
    },
    {
        name: "Leo Smith",
        age: 253,
        img: "https://www.svgrepo.com/show/51654/professor.svg",
        role: "lector",
        courses: [
            {
                "title": "Front-end Pro",
                "score": 78,
                "studentsScore": 79
            },
            {
                "title": "Java Enterprise",
                "score": 85,
                "studentsScore": 85
            }
        ]
    }
]
class User {
    constructor(name, age, role, img, courses){
        this.name = name;
        this.age = age;
        this.role = role;
        this.img = img;
        this.courses = courses;
    }
    render(){
        let data = document.write(`<div class="user__info">
                            <div class="user__info--data">
                                <img src="${this.img}" alt="${this.name}" height="50">
                                <div class="user__naming">
                                <p>Name: <b>${this.name}</b></p>
                                <p>Age: <b>${this.age}</b></p>
                                </div>
                            </div>
                        </div>
                        <div class="user__info--role ${this.role}">
                            <img src="${roles[this.role]}" alt="${this.role}" height="25">
                            <p>${this.role}</p>
                        </div>`)
 
        return data;
 
    }
    renderCourses(){
    }
    renderAge(){
        // console.log(`${this.age}`)
    }
}
 
 
class Student extends User{
    constructor(name, age, role, img, courses){
        super(name, age, role, img, courses);
    }
    renderCourses(){
        super.renderCourses();
    console.log(`Im ${this.courses}`);
 
    }
}
users
    .forEach(function(user) {
        if(user.role === 'student'){
            let student = new Student(user.name, user.age, user.role, user.img, user.courses);
            student.render();
            student.renderAge();
            console.log(`Im ${student.name}, im a ${student.role}, ${student.age} years old, learning ${student.courses}`)
        }
        
    })
Ответить с цитированием