diff --git a/README.md b/README.md index a4241d05..4d832f09 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ 1. Replace `` with your Github username in the link - - [DEMO LINK](https://.github.io/js_task_generate_table_DOM/) + - [DEMO LINK](https://Yevhen-Srdk.github.io/js_task_generate_table_DOM/) 2. Follow [this instructions](https://mate-academy.github.io/layout_task-guideline/) - Run `npm run test` command to test your code; - Run `npm run test:only -- -n` to run fast test ignoring linter; @@ -14,12 +14,12 @@ Okay, now we know what is a table, and can do some magic. In `main.js`, you already have imported file `people.json`. Variable `people` contains an array of people, you can check it by using `console.log`. Your task today is to convert this array to table rows. -Your layout for start: +Your layout for start: ![Preview](./src/images/preview.png) From the preview, you can see that table has 6 headers, but our data does not contain age and century. Yes, you need to calculate them by yourself. - + ##### Steps to do this challenge: 1) For each person from `people` array create table row with 6 table cells (name, gender, born, died, age, century) 2) Find a table with class `dashboard` in the document. diff --git a/src/scripts/main.js b/src/scripts/main.js index 7d4a5db0..e5c017e9 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -354,7 +354,37 @@ const people = [ }, ]; -// eslint-disable-next-line no-console -console.log(people); // you can remove it +people.forEach((person) => { + person.age = getPersonAge(person); + person.century = getPersonCentury(person); +}); -// write your code here +const table = document.querySelector('.dashboard'); +const tableBody = table.querySelector('tbody'); + +people.forEach((person) => { + const tableRow = document.createElement('tr'); + + person.sex = person.sex === 'm' ? 'Male' : 'Female'; + + [ + person.name, + person.sex, + person.born, + person.died, + person.age, + person.century, + ].forEach((personData, i) => { + tableRow.insertCell(i).textContent = personData; + }); + + tableBody.append(tableRow); +}); + +function getPersonAge(person) { + return person.died - person.born; +} + +function getPersonCentury(person) { + return Math.ceil(person.died / 100); +}