From 2d14a9f88438acc27e046ed9b3719f93eb002bba Mon Sep 17 00:00:00 2001 From: Anton Polishchuk Date: Fri, 28 Feb 2025 12:21:55 +0100 Subject: [PATCH 1/2] complete task --- src/scripts/main.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index a765fdb1d..b3d5dc829 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,3 +1,31 @@ 'use strict'; -// write code here +const list = document.querySelector('ul'); +const employees = document.querySelectorAll('li'); + +function sortList() { + const sortedEmployees = [...employees].sort((eA, eB) => { + const salary1 = salaryToN(eA.dataset.salary); + const salary2 = salaryToN(eB.dataset.salary); + + return salary2 - salary1; + }); + + sortedEmployees.forEach((employee) => list.append(employee)); +} + +function getEmployees() { + return [...employees].map((employee) => ({ + name: employee.innerText, + position: employee.dataset.position, + salary: employee.dataset.salary, + age: +employee.dataset.age, + })); +} + +function salaryToN(salary) { + return +salary.replace(/[$,]/g, ''); +} + +sortList(); +getEmployees(); From 4b6455d1a27ce0605161959290a2526ed1047bbd Mon Sep 17 00:00:00 2001 From: Anton Polishchuk Date: Fri, 22 May 2026 20:23:05 +0200 Subject: [PATCH 2/2] add solution --- src/scripts/main.js | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index b3d5dc829..778862c14 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,31 +1,27 @@ 'use strict'; -const list = document.querySelector('ul'); -const employees = document.querySelectorAll('li'); +const ulItem = document.querySelector('ul'); +const liItems = [...ulItem.querySelectorAll('li')]; -function sortList() { - const sortedEmployees = [...employees].sort((eA, eB) => { - const salary1 = salaryToN(eA.dataset.salary); - const salary2 = salaryToN(eB.dataset.salary); +function sortBySalary(workers) { + const sortedWorkers = workers.sort((a, b) => { + const aSalary = +a.dataset.salary.replace(/\D/g, ''); + const bSalary = +b.dataset.salary.replace(/\D/g, ''); - return salary2 - salary1; + return bSalary - aSalary; }); - sortedEmployees.forEach((employee) => list.append(employee)); + ulItem.append(...sortedWorkers); } -function getEmployees() { - return [...employees].map((employee) => ({ - name: employee.innerText, - position: employee.dataset.position, - salary: employee.dataset.salary, - age: +employee.dataset.age, +function getWorkers(workers) { + return workers.map((worker) => ({ + name: worker.textContent.trim(), + position: worker.dataset.position, + salary: worker.dataset.salary, + age: worker.dataset.age, })); } -function salaryToN(salary) { - return +salary.replace(/[$,]/g, ''); -} - -sortList(); -getEmployees(); +sortBySalary(liItems); +getWorkers(liItems);