From ec9271e86fb65f3ae22ba17baba0bb0445549381 Mon Sep 17 00:00:00 2001 From: "vitaly.basaraba" Date: Sun, 19 Jan 2025 11:27:09 +0000 Subject: [PATCH] Featured: sort question --- sort.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 sort.js diff --git a/sort.js b/sort.js new file mode 100644 index 0000000..fa2de03 --- /dev/null +++ b/sort.js @@ -0,0 +1,29 @@ +const path = require('path'); + +const data = require(path.resolve(__dirname, 'question.json')); + +function sortAndFilterUniqueLinks(arr) { + const seenLinks = new Set(); + + // Filter objects with unique links + const filteredArr = arr.filter(obj => { + if (obj.link && !seenLinks.has(obj.link)) { + seenLinks.add(obj.link); + return true; + } + return false; + }); + + // Sort the filtered array by link alphabetically + return filteredArr.sort((a, b) => { + if (a.link < b.link) return -1; + if (a.link > b.link) return 1; + return 0; + }); +} + +const old = data.filter(({link}) => !link); +const newData = sortAndFilterUniqueLinks(data.filter(({link}) => link)); +const work = [...old, ...newData]; + +console.log(JSON.stringify(work));