From b9a6418bc7ccb2d4ca674ef83d317dd17340a681 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 24 Sep 2025 18:34:10 -0300 Subject: [PATCH 1/4] [BUGFIX] SonarQube: Prefer `Math.max()` to simplify ternary expressions. Ternary expressions should be replaced with "Math.min()" or "Math.max()" for simple comparisons javascript:S7766 --- src/projecteuler/problem0005.js | 2 +- src/projecteuler/problem0018.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projecteuler/problem0005.js b/src/projecteuler/problem0005.js index a722dd9a..688c33d3 100644 --- a/src/projecteuler/problem0005.js +++ b/src/projecteuler/problem0005.js @@ -25,7 +25,7 @@ function _replaceMaximum(_element, count, _group) { const group = _group; if (Object.hasOwn(group, _element)) { const elem = _group[_element]; - group[_element] = count > elem ? count : elem; + group[_element] = Math.max(count, elem); } else { group[_element] = count; } diff --git a/src/projecteuler/problem0018.js b/src/projecteuler/problem0018.js index bff25afc..f84e3e93 100644 --- a/src/projecteuler/problem0018.js +++ b/src/projecteuler/problem0018.js @@ -27,7 +27,7 @@ function problem0018(_triangle) { console.debug('leafs count', leafs.length, 'leafs', leafs); const __START_FROM__ = 0; - const max = leafs.reduce((a, b) => (a > b ? a : b), __START_FROM__); + const max = leafs.reduce((a, b) => Math.max(a, b), __START_FROM__); return max; } From 2586c6b5fdd09df4c5fbe31f00c5eae6e1e96a09 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 24 Sep 2025 18:38:38 -0300 Subject: [PATCH 2/4] [BUGFIX] SonarQube: Prefer `String#replaceAll()` over `String#replace()`. Strings should use "replaceAll()" instead of "replace()" with global regex javascript:S7781 --- src/projecteuler/problem0017.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projecteuler/problem0017.js b/src/projecteuler/problem0017.js index dd150124..4431e8b0 100644 --- a/src/projecteuler/problem0017.js +++ b/src/projecteuler/problem0017.js @@ -12,7 +12,7 @@ function problem0017(init, last) { for (let i = init; i <= last; i++) { word = numberToWord(i); - replaced = word.replace(/[^a-z0-9]/gi, ''); + replaced = word.replaceAll(/[^a-z0-9]/gi, ''); acum += replaced.length; From 228ef0ba5fc92a1c7164f567e8b35326b7063ff0 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 24 Sep 2025 18:52:51 -0300 Subject: [PATCH 3/4] =?UTF-8?q?[BUGFIX]=20SonarQube:=20Prefer=20`.at(?= =?UTF-8?q?=E2=80=A6)`=20over=20`[=E2=80=A6.length=20-=20index]`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complex index access patterns should be replaced with ".at()" method javascript:S7755 --- .../greedy_algorithms/angry_children.js | 2 +- .../minimum_absolute_difference_in_an_array.js | 2 +- .../stacks_and_queues/balanced_brackets.js | 5 +---- src/projecteuler/problem0007.js | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children.js b/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children.js index 14bf0ed1..139b2594 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children.js +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children.js @@ -5,7 +5,7 @@ function maxMin(k, arr) { const sortedlist = arr.map((x) => x).sort((a, b) => a - b); - let result = sortedlist[sortedlist.length - 1] - sortedlist[0]; + let result = sortedlist.at(-1) - sortedlist[0]; for (let i = 0; i < sortedlist.length - k + 1; i++) { const tmin = sortedlist[i]; diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array.js b/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array.js index 1665c4ce..c4f64431 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array.js +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array.js @@ -5,7 +5,7 @@ function minimumAbsoluteDifference(arr) { const sortedNums = arr.map((x) => x).sort((a, b) => b - a); - let result = Math.abs(sortedNums[sortedNums.length - 1] - sortedNums[0]); + let result = Math.abs(sortedNums.at(-1) - sortedNums[0]); for (let i = 0; i < sortedNums.length - 1; i++) { const aValue = sortedNums[i]; diff --git a/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets.js b/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets.js index 6f9bf529..80e46c60 100644 --- a/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets.js +++ b/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets.js @@ -12,10 +12,7 @@ function isBalancedCompute(s) { for (const letter of s.split('')) { if (letter in pairs) { brackets.push(letter); - } else if ( - brackets.length > 0 && - pairs[brackets[brackets.length - 1]] === letter - ) { + } else if (brackets.length > 0 && pairs[brackets.at(-1)] === letter) { brackets.pop(); } else { return false; diff --git a/src/projecteuler/problem0007.js b/src/projecteuler/problem0007.js index fd6b91d9..046d8360 100644 --- a/src/projecteuler/problem0007.js +++ b/src/projecteuler/problem0007.js @@ -23,7 +23,7 @@ function problem0007(_top) { console.log(`primes count: ${primes.length}`); - const answer = primes[primes.length - 1]; + const answer = primes.at(-1); const cycles = i; console.log(`${_top} prime number is: ${answer} in ${cycles} cycles`); From 5d647da8faf7cc4e7dcd49e6df15e0c30f61aa56 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 24 Sep 2025 19:05:05 -0300 Subject: [PATCH 4/4] =?UTF-8?q?[BUGFIX]=20SonarQube:=20Use=20`export?= =?UTF-8?q?=E2=80=A6from`=20to=20re-export=20`Player`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-exports should use "export...from" syntax javascript:S7763 --- .../interview_preparation_kit/sort/ctci_comparator_sorting.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hackerrank/interview_preparation_kit/sort/ctci_comparator_sorting.js b/src/hackerrank/interview_preparation_kit/sort/ctci_comparator_sorting.js index d0e903f7..257ef823 100644 --- a/src/hackerrank/interview_preparation_kit/sort/ctci_comparator_sorting.js +++ b/src/hackerrank/interview_preparation_kit/sort/ctci_comparator_sorting.js @@ -50,4 +50,5 @@ export default { comparatorSorting, comparatorSortingPrint }; -export { Player, SortablePlayer, comparatorSorting, comparatorSortingPrint }; +export { Player } from './ctci_comparator_sorting.Player.js'; +export { SortablePlayer, comparatorSorting, comparatorSortingPrint };