From 1baf82b604a15437405d5b903ddb7b9b573fef71 Mon Sep 17 00:00:00 2001 From: Vita Martsekhovska Date: Wed, 20 May 2026 19:21:20 +0300 Subject: [PATCH 1/2] add task solution --- README.md | 6 +++--- package-lock.json | 9 +++++---- package.json | 2 +- src/scripts/main.js | 37 ++++++++++++++++++++++++++++++++++++- 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 294f077fb..a2e7e97b9 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_parse_list_DOM/) + - [DEMO LINK](https://vitamartsekhovska.github.io/js_task_parse_list_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; @@ -10,14 +10,14 @@ Hey there! Can you parse data from the list and sort it based on data attributes? Your task: Sort list by salary in descending order. -Get an array of employees. Write two functions: +Get an array of employees. Write two functions: - first, which sorts the list by salary from data attributes - second, which returns an array of objects, where objects are employees. The schema for the employee: ``` { - name, + name, position, salary, age diff --git a/package-lock.json b/package-lock.json index c3a278e3e..afdd680c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/eslint-config": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.5", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "@parcel/transformer-sass": "^2.12.0", "cypress": "^13.13.0", @@ -1497,10 +1497,11 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.8.5.tgz", - "integrity": "sha512-mHRY2FkuoYCf5U0ahIukkaRo5LSZsxrTSgMJheFoyf3VXsTvfM9OfWcZIDIDB521kdPrScHHnRp+JRNjCfUO5A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-2.1.3.tgz", + "integrity": "sha512-a07wHTj/1QUK2Aac5zHad+sGw4rIvcNl5lJmJpAD7OxeSbnCdyI6RXUHwXhjF5MaVo9YHrJ0xVahyERS2IIyBQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/rest": "^17.11.2", "@types/get-port": "^4.2.0", diff --git a/package.json b/package.json index 8e38597e8..a43a43f70 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/eslint-config": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.5", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "@parcel/transformer-sass": "^2.12.0", "cypress": "^13.13.0", diff --git a/src/scripts/main.js b/src/scripts/main.js index a765fdb1d..7fd22e185 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1,3 +1,38 @@ 'use strict'; -// write code here +function getSalaryNumber(employee) { + const salaryString = employee.dataset.salary.slice(1).replaceAll(',', ''); + + return +salaryString; +} + +function sortList(list) { + const employeesArray = [...list.children]; + + const newemployeesArray = employeesArray.sort((a, b) => { + const childA = getSalaryNumber(a); + const childB = getSalaryNumber(b); + + return childB - childA; + }); + + list.append(...newemployeesArray); +} + +function getEmployees(list) { + const workerArray = [...list.children]; + + return workerArray.map((worker) => { + return { + name: worker.textContent.trim(), + position: worker.dataset.position, + salary: getSalaryNumber(worker), + age: +worker.dataset.age, + }; + }); +} + +const mainList = document.querySelector('ul'); + +sortList(mainList); +getEmployees(mainList); From 020373aaeae514406889a03eba22af1534d47819 Mon Sep 17 00:00:00 2001 From: Vita Martsekhovska Date: Wed, 20 May 2026 19:49:59 +0300 Subject: [PATCH 2/2] add new task solution --- src/scripts/main.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index 7fd22e185..1e15cf8d4 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -24,7 +24,7 @@ function getEmployees(list) { return workerArray.map((worker) => { return { - name: worker.textContent.trim(), + name: worker.dataset.name, position: worker.dataset.position, salary: getSalaryNumber(worker), age: +worker.dataset.age, @@ -35,4 +35,8 @@ function getEmployees(list) { const mainList = document.querySelector('ul'); sortList(mainList); -getEmployees(mainList); + +const employees = getEmployees(mainList); + +// eslint-disable-next-line no-console +console.log(employees);