визуализировать объект со значением объекта в EJS - PullRequest
0 голосов
/ 13 января 2020

У меня есть объект, подобный следующему, который я передаю в шаблон e js:

 { 
    course1: { last4: '4242', name: 'Course 1', paid: true },
    course2: { last4: '3155', name: 'Course 2', paid: true },
    course3: { last4: '4242', name: 'Course 3', paid: true } 
}

, и я передаю его так:

 res.render("user", {                
        courses: myCourses,               
});

Я хочу визуализировать объект внутри страницы, я пробовал что-то вроде этого:


            <% if(courses){  %>
                <%= courses %>
                <% Object.entries(courses).forEach(course =>{ %>

             <p>hello</p>

            <%= course %>


            <% }) %>
            <% }else{ %>
                <p>hello1</p>
                <% }%>

это результат: object result in browser

вот что я ожидаю: expected result

, поэтому в последнем примере вы видите, что я просто получаю ключ объектов, а не значения. Как я могу также сделать (или доступ) значения? спасибо

1 Ответ

1 голос
/ 13 января 2020

Каждый элемент массива, возвращаемый Object.entries, представляет собой массив [key, value]. С вашим существующим кодом, course[0] является текущим ключом, course[1].last4 является полем last4 текущего объекта и т. Д.

Я бы написал его как минимум с одним уровнем деструктуризации, как у вас изначально было:

<% if (courses) {  %>
    <% for (const [key, course] of Object.entries(courses)) { %>
        <%= key %>
        <%= course.last4 %>
        <%= course.name %>
        <%= course.paid %>
    <% } %>
<% } else { %>
    <p>hello1</p>
<% } %>
...