From e85e86b9d0197f2637786dd8a976a392b8113230 Mon Sep 17 00:00:00 2001 From: Damian Kurzydlo Date: Mon, 11 May 2026 14:23:04 +0100 Subject: [PATCH 1/2] add task solution --- src/scripts/main.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/scripts/main.js b/src/scripts/main.js index a765fdb1d..d301d0be8 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,3 +1,37 @@ 'use strict'; // write code here + +const listOfEmployees = document.querySelector('ul'); + +function convertToNumber(value) { + if (!isNaN(Number(value.replace('$', '').replaceAll(',', '')))) { + return Number(value.replace('$', '').replaceAll(',', '')); + } +} + +function sortList(list) { + const sorted = [...listOfEmployees.querySelectorAll('li')].sort((a, b) => { + return ( + convertToNumber(b.dataset.salary) - convertToNumber(a.dataset.salary) + ); + }); + + sorted.forEach((employee) => listOfEmployees.append(employee)); +} + +function getEmployees(list) { + const employees = [...list.querySelectorAll('li')].map((employee) => { + return { + name: employee.innerText, + position: employee.dataset.position, + salary: employee.dataset.salary, + age: employee.dataset.age, + }; + }); + + return employees; +} + +sortList(listOfEmployees); +getEmployees(listOfEmployees); From 33ecdd84feeebe8f7ae9e8bdbf6d391e841cc30b Mon Sep 17 00:00:00 2001 From: Damian Kurzydlo Date: Mon, 11 May 2026 14:33:59 +0100 Subject: [PATCH 2/2] use list parameter instead of global variable and parse salary to number --- src/scripts/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index d301d0be8..0a78b1366 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -11,13 +11,13 @@ function convertToNumber(value) { } function sortList(list) { - const sorted = [...listOfEmployees.querySelectorAll('li')].sort((a, b) => { + const sorted = [...list.querySelectorAll('li')].sort((a, b) => { return ( convertToNumber(b.dataset.salary) - convertToNumber(a.dataset.salary) ); }); - sorted.forEach((employee) => listOfEmployees.append(employee)); + sorted.forEach((employee) => list.append(employee)); } function getEmployees(list) { @@ -25,7 +25,7 @@ function getEmployees(list) { return { name: employee.innerText, position: employee.dataset.position, - salary: employee.dataset.salary, + salary: convertToNumber(employee.dataset.salary), age: employee.dataset.age, }; });