From 98526f28b99ac4789e1b468c520c28d3b669bd14 Mon Sep 17 00:00:00 2001 From: Fahim Faisaal Date: Mon, 16 May 2022 06:09:25 +0600 Subject: [PATCH 1/2] pref: used 1 method instead of 5 --- String/FormatPhoneNumber.js | 25 ++++++++++++------------- String/test/FormatPhoneNumber.test.js | 26 +++++++++----------------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/String/FormatPhoneNumber.js b/String/FormatPhoneNumber.js index c1bbde8320..e2da82c2ad 100644 --- a/String/FormatPhoneNumber.js +++ b/String/FormatPhoneNumber.js @@ -1,17 +1,16 @@ -// function that takes 10 digits and returns a string of the formatted phone number -// e.g.: 1234567890 -> (123) 456-7890 - -const formatPhoneNumber = (numbers) => { - const numbersString = numbers.toString() - if ((numbersString.length !== 10) || isNaN(numbersString)) { +/** + * @description - function that takes 10 digits and returns a string of the formatted phone number e.g.: 1234567890 -> (123) 456-7890 + * @param {string} phoneNumber + * @returns {string} - Formate to (XXX) XXX-XXXX pattern + */ +const formatPhoneNumber = (phoneNumber) => { + if ((phoneNumber.length !== 10) || isNaN(phoneNumber)) { // return "Invalid phone number." - throw new TypeError('Invalid phone number.') + throw new TypeError('Invalid phone number!') } - const arr = '(XXX) XXX-XXXX'.split('') - Array.from(numbersString).forEach(n => { - arr[arr.indexOf('X')] = n - }) - return arr.join('') + + let index = 0 + return '(XXX) XXX-XXXX'.replace(/X/g, () => phoneNumber[index++]) } -export { formatPhoneNumber } +export default formatPhoneNumber diff --git a/String/test/FormatPhoneNumber.test.js b/String/test/FormatPhoneNumber.test.js index 0e9febcb79..42ae24a8a9 100644 --- a/String/test/FormatPhoneNumber.test.js +++ b/String/test/FormatPhoneNumber.test.js @@ -1,23 +1,15 @@ -import { formatPhoneNumber } from '../FormatPhoneNumber' - -describe('PhoneNumberFormatting', () => { - it('expects to return the formatted phone number', () => { - expect(formatPhoneNumber('1234567890')).toEqual('(123) 456-7890') - }) - - it('expects to return the formatted phone number', () => { - expect(formatPhoneNumber(1234567890)).toEqual('(123) 456-7890') - }) +import formatPhoneNumber from '../FormatPhoneNumber' +describe('Testing the formatPhoneNumber functions', () => { it('expects to throw a type error', () => { - expect(() => { formatPhoneNumber('1234567') }).toThrow('Invalid phone number.') + expect(() => formatPhoneNumber('1234567')).toThrow('Invalid phone number!') + expect(() => formatPhoneNumber('123456text')).toThrow('Invalid phone number!') + expect(() => formatPhoneNumber(12345)).toThrow('Invalid phone number!') }) - it('expects to throw a type error', () => { - expect(() => { formatPhoneNumber('123456text') }).toThrow('Invalid phone number.') - }) - - it('expects to throw a type error', () => { - expect(() => { formatPhoneNumber(12345) }).toThrow('Invalid phone number.') + it('expects to return the formatted phone number', () => { + expect(formatPhoneNumber('1234567890')).toEqual('(123) 456-7890') + expect(formatPhoneNumber('2124323322')).toEqual('(212) 432-3322') + expect(formatPhoneNumber('1721543455')).toEqual('(172) 154-3455') }) }) From fb4774fb5a52a32170a7671ac710fd2b568e0da2 Mon Sep 17 00:00:00 2001 From: Fahim Faisaal <57553028+fahimfaisaal@users.noreply.github.com> Date: Mon, 16 May 2022 22:04:01 +0600 Subject: [PATCH 2/2] fixed spell mistake --- String/FormatPhoneNumber.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/String/FormatPhoneNumber.js b/String/FormatPhoneNumber.js index e2da82c2ad..0a6fe6fc5b 100644 --- a/String/FormatPhoneNumber.js +++ b/String/FormatPhoneNumber.js @@ -1,7 +1,7 @@ /** * @description - function that takes 10 digits and returns a string of the formatted phone number e.g.: 1234567890 -> (123) 456-7890 * @param {string} phoneNumber - * @returns {string} - Formate to (XXX) XXX-XXXX pattern + * @returns {string} - Format to (XXX) XXX-XXXX pattern */ const formatPhoneNumber = (phoneNumber) => { if ((phoneNumber.length !== 10) || isNaN(phoneNumber)) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy