From 0ccf69578bd7236d789e532eb0807ffbb6441df5 Mon Sep 17 00:00:00 2001 From: madhuredra Date: Wed, 20 Sep 2023 13:27:53 +0530 Subject: [PATCH 1/2] added numberOfDigitsUsingLog method --- Maths/NumberOfDigits.js | 12 +++++++++++- Maths/test/NumberOfDigits.test.js | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Maths/NumberOfDigits.js b/Maths/NumberOfDigits.js index 6414c65deb..04a0191644 100644 --- a/Maths/NumberOfDigits.js +++ b/Maths/NumberOfDigits.js @@ -9,4 +9,14 @@ const numberOfDigit = (n) => Math.abs(n).toString().length -export { numberOfDigit } +/** + * + * Author : dev-madhurendra + * Returns the number of digits of a given integer + * Resource : https://math.stackexchange.com/questions/2145480/how-does-the-logarithm-returns-the-number-of-digits-of-a-number + * + */ + +const numberOfDigitsUsingLog = (n) => n === 0 ? 1 : Math.floor(Math.log10(Math.abs(n))) + 1 + +export { numberOfDigit, numberOfDigitsUsingLog } diff --git a/Maths/test/NumberOfDigits.test.js b/Maths/test/NumberOfDigits.test.js index 631e2cce36..bf832c8691 100644 --- a/Maths/test/NumberOfDigits.test.js +++ b/Maths/test/NumberOfDigits.test.js @@ -1,4 +1,4 @@ -import { numberOfDigit } from '../NumberOfDigits' +import { numberOfDigit, numberOfDigitsUsingLog } from '../NumberOfDigits' describe('NumberOfDigits', () => { it('should return the correct number of digits for an integer', () => { @@ -8,4 +8,13 @@ describe('NumberOfDigits', () => { it('should return the correct number of digits for a negative number', () => { expect(numberOfDigit(-2346243)).toBe(7) }) + + it.each([ + [0, 1], + [123423232, 9], + [-123423232, 9], + [9999, 4] + ])('should return the correct number of digits in an integer', (value, expected) => { + expect(numberOfDigitsUsingLog(value)).toBe(expected) + }) }) From 3a4b8facc977a3375126658f96945334af2c700f Mon Sep 17 00:00:00 2001 From: madhuredra Date: Wed, 20 Sep 2023 15:58:39 +0530 Subject: [PATCH 2/2] added JSDoc comment --- Maths/NumberOfDigits.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Maths/NumberOfDigits.js b/Maths/NumberOfDigits.js index 04a0191644..f2ef656433 100644 --- a/Maths/NumberOfDigits.js +++ b/Maths/NumberOfDigits.js @@ -10,13 +10,13 @@ const numberOfDigit = (n) => Math.abs(n).toString().length /** + * Returns the number of digits of a given integer. * - * Author : dev-madhurendra - * Returns the number of digits of a given integer - * Resource : https://math.stackexchange.com/questions/2145480/how-does-the-logarithm-returns-the-number-of-digits-of-a-number - * + * @param {number} n - The integer for which to count digits. + * @returns {number} The number of digits in the integer. + * @see https://math.stackexchange.com/questions/2145480/how-does-the-logarithm-returns-the-number-of-digits-of-a-number + * @author dev-madhurendra */ - const numberOfDigitsUsingLog = (n) => n === 0 ? 1 : Math.floor(Math.log10(Math.abs(n))) + 1 export { numberOfDigit, numberOfDigitsUsingLog }