From 5babff07e380d576113d238f459c0588ed882e4e Mon Sep 17 00:00:00 2001 From: Victoria Neustroeva Date: Wed, 10 Jun 2026 11:04:55 +0300 Subject: [PATCH 1/2] add task solution --- src/scripts/main.js | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index a765fdb1d..595a213a2 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,3 +1,37 @@ 'use strict'; -// write code here +const ul = document.querySelector('ul'); +const liElements = [...document.querySelectorAll('li')]; + +function sortList(list, property) { + return list.sort( + (li1, li2) => + strToNumber(li2.dataset[property]) - strToNumber(li1.dataset[property]), + ); +} + +function strToNumber(str) { + return Number(str.replaceAll(/[$,]/g, '')); +} + +function getEmployees(list) { + const employees = []; + + for (const li of list) { + const employee = {}; + + employee.name = li.textContent.trim(); + + for (const key in li.dataset) { + employee[key] = li.dataset[key]; + } + + employees.push(employee); + } + + return employees; +} + +sortList(liElements, 'salary'); +liElements.forEach((li) => ul.append(li)); +getEmployees(liElements); From 4dfb3bc87360882ecedc022ec7a5622530a4a5fb Mon Sep 17 00:00:00 2001 From: Victoria Neustroeva Date: Wed, 10 Jun 2026 11:39:18 +0300 Subject: [PATCH 2/2] add task solution 1 --- src/scripts/main.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index 595a213a2..ae4053dc7 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,30 +1,34 @@ 'use strict'; -const ul = document.querySelector('ul'); const liElements = [...document.querySelectorAll('li')]; -function sortList(list, property) { - return list.sort( +function sortList(list) { + const ul = list[0].parentNode; + const sortProperty = 'salary'; + + list.sort( (li1, li2) => - strToNumber(li2.dataset[property]) - strToNumber(li1.dataset[property]), + strToNumber(li2.dataset[sortProperty]) - + strToNumber(li1.dataset[sortProperty]), ); + + list.forEach((li) => ul.append(li)); } function strToNumber(str) { - return Number(str.replaceAll(/[$,]/g, '')); + return Number(str.replace(/[$,]/g, '')); } function getEmployees(list) { const employees = []; for (const li of list) { - const employee = {}; - - employee.name = li.textContent.trim(); - - for (const key in li.dataset) { - employee[key] = li.dataset[key]; - } + const employee = { + name: li.textContent.trim(), + position: li.dataset.position, + salary: strToNumber(li.dataset.salary), + age: Number(li.dataset.age), + }; employees.push(employee); } @@ -32,6 +36,5 @@ function getEmployees(list) { return employees; } -sortList(liElements, 'salary'); -liElements.forEach((li) => ul.append(li)); +sortList(liElements); getEmployees(liElements);