From 9ccdab8b0cd62922e5e1b7064ddf000a9bae4c1a Mon Sep 17 00:00:00 2001 From: Ali Sadeghi Date: Fri, 12 Apr 2024 14:35:45 +0330 Subject: [PATCH] Fix sorting duplication bug Part1 --- JS/interfaceClass.js | 2 +- JS/interfaceClass.js.map | 2 +- JS/sortSection.js | 17 ++++++++++++++++- JS/sortSection.js.map | 2 +- TS/interfaceClass.ts | 2 +- TS/sortSection.ts | 28 ++++++++++++++++++++++++---- 6 files changed, 44 insertions(+), 9 deletions(-) diff --git a/JS/interfaceClass.js b/JS/interfaceClass.js index 376742d..7e21038 100644 --- a/JS/interfaceClass.js +++ b/JS/interfaceClass.js @@ -21,7 +21,7 @@ class Items {
item-image -
${this.title}
+
${this.title}
${this.price} $
diff --git a/JS/interfaceClass.js.map b/JS/interfaceClass.js.map index 9aa14dc..1f8cc1b 100644 --- a/JS/interfaceClass.js.map +++ b/JS/interfaceClass.js.map @@ -1 +1 @@ -{"version":3,"file":"interfaceClass.js","sourceRoot":"","sources":["../TS/interfaceClass.ts"],"names":[],"mappings":";AAeA,MAAM,KAAK;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;IAPX,YACW,EAAU,EACV,KAAa,EACb,KAAa,EACb,WAAmB,EACnB,QAAgB,EAChB,KAAa,EACb,MAGN;QATM,OAAE,GAAF,EAAE,CAAQ;QACV,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAQ;QACb,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAGZ;IACF,CAAC;IAEJ,UAAU,GAAG,GAAG,EAAE;QACd,OAAO;;+CAEgC,IAAI,CAAC,KAAK;;gDAET,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;;;8CAG1B,IAAI,CAAC,KAAK;+CACT,IAAI,CAAC,MAAM,CAAC,IAAI;;;6CAGlB,IAAI,CAAC,QAAQ;;SAEjD,CAAC;IACN,CAAC,CAAC;CACL"} \ No newline at end of file +{"version":3,"file":"interfaceClass.js","sourceRoot":"","sources":["../TS/interfaceClass.ts"],"names":[],"mappings":";AAeA,MAAM,KAAK;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;IAPX,YACW,EAAU,EACV,KAAa,EACb,KAAa,EACb,WAAmB,EACnB,QAAgB,EAChB,KAAa,EACb,MAGN;QATM,OAAE,GAAF,EAAE,CAAQ;QACV,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAQ;QACb,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAGZ;IACF,CAAC;IAEJ,UAAU,GAAG,GAAG,EAAE;QACd,OAAO;;+CAEgC,IAAI,CAAC,KAAK;;iDAER,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;;;8CAG5B,IAAI,CAAC,KAAK;+CACT,IAAI,CAAC,MAAM,CAAC,IAAI;;;6CAGlB,IAAI,CAAC,QAAQ;;SAEjD,CAAC;IACN,CAAC,CAAC;CACL"} \ No newline at end of file diff --git a/JS/sortSection.js b/JS/sortSection.js index f729b05..ee693c1 100644 --- a/JS/sortSection.js +++ b/JS/sortSection.js @@ -52,7 +52,22 @@ const sortItemsFunc = (sortType, itemPosition) => { } }); }); - const sortedItemOutputs = sortedItems.map((sortedCard) => sortedCard[0].createCard()); + console.log("sortedItems >>", sortedItems); + const addedIDs = []; + const sortedItemOutputs = sortedItems.map((sortedCards) => { + let uniqueCard = sortedCards[0]; + console.log("Before", addedIDs); + sortedCards.map((sortedCard) => { + if (!addedIDs.includes(sortedCard.id)) { + addedIDs.push(sortedCard.id); + console.log("After", addedIDs); + uniqueCard = sortedCard; + return; + } + }); + console.log("uniqueCard >>", uniqueCard); + return uniqueCard.createCard(); + }); itemSection.innerHTML = ""; sortedItemOutputs.map((sortedItemOutput) => (itemSection.innerHTML += sortedItemOutput)); }; diff --git a/JS/sortSection.js.map b/JS/sortSection.js.map index 1df37cd..4cfea28 100644 --- a/JS/sortSection.js.map +++ b/JS/sortSection.js.map @@ -1 +1 @@ -{"version":3,"file":"sortSection.js","sourceRoot":"","sources":["../TS/sortSection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sortSection.js","sourceRoot":"","sources":["../TS/sortSection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/TS/interfaceClass.ts b/TS/interfaceClass.ts index 685f5cf..63654c5 100644 --- a/TS/interfaceClass.ts +++ b/TS/interfaceClass.ts @@ -32,7 +32,7 @@ class Items implements Iitem {
item-image -
${this.title}
+
${this.title}
${this.price} $
diff --git a/TS/sortSection.ts b/TS/sortSection.ts index cfeff2a..e2422fa 100644 --- a/TS/sortSection.ts +++ b/TS/sortSection.ts @@ -68,11 +68,31 @@ const sortItemsFunc = ( } }); }); - // console.log("sortedItems >>", sortedItems); + console.log("sortedItems >>", sortedItems); - const sortedItemOutputs = sortedItems.map((sortedCard) => - sortedCard[0].createCard() - ); + const addedIDs: number[] = []; + + const sortedItemOutputs = sortedItems.map((sortedCards) => { + let uniqueCard = sortedCards[0]; + + console.log("Before", addedIDs); + + sortedCards.map((sortedCard) => { + if (!addedIDs.includes(sortedCard.id)) { + addedIDs.push(sortedCard.id); + + console.log("After", addedIDs); + + uniqueCard = sortedCard; + return; + } + }); + + console.log("uniqueCard >>", uniqueCard); + + return uniqueCard.createCard(); + // return uniqueCard; + }); // console.log("sortedItemOutputs >>", sortedItemOutputs); itemSection.innerHTML = "";