From b3f01297444d540fdf9918f3d8f271ab8eab8665 Mon Sep 17 00:00:00 2001 From: marleyrae Date: Fri, 23 Jun 2023 11:31:59 -0700 Subject: [PATCH] Add space between part2 & part3 --- credit-card-checker | 1 - credit-card-checkerv/main.js | 90 ++++++++++++++++++++++++++++++++++++ message-generator/main.js | 2 +- 3 files changed, 91 insertions(+), 2 deletions(-) delete mode 160000 credit-card-checker create mode 100644 credit-card-checkerv/main.js diff --git a/credit-card-checker b/credit-card-checker deleted file mode 160000 index ce5ec63..0000000 --- a/credit-card-checker +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ce5ec631b235224288aa67597f005daeeaa7889a diff --git a/credit-card-checkerv/main.js b/credit-card-checkerv/main.js new file mode 100644 index 0000000..b9484b0 --- /dev/null +++ b/credit-card-checkerv/main.js @@ -0,0 +1,90 @@ +// All valid credit card numbers +const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8] +const valid2 = [5, 5, 3, 5, 7, 6, 6, 7, 6, 8, 7, 5, 1, 4, 3, 9] +const valid3 = [3, 7, 1, 6, 1, 2, 0, 1, 9, 9, 8, 5, 2, 3, 6] +const valid4 = [6, 0, 1, 1, 1, 4, 4, 3, 4, 0, 6, 8, 2, 9, 0, 5] +const valid5 = [4, 5, 3, 9, 4, 0, 4, 9, 6, 7, 8, 6, 9, 6, 6, 6] + +// All invalid credit card numbers +const invalid1 = [4, 5, 3, 2, 7, 7, 8, 7, 7, 1, 0, 9, 1, 7, 9, 5] +const invalid2 = [5, 7, 9, 5, 5, 9, 3, 3, 9, 2, 1, 3, 4, 6, 4, 3] +const invalid3 = [3, 7, 5, 7, 9, 6, 0, 8, 4, 4, 5, 9, 9, 1, 4] +const invalid4 = [6, 0, 1, 1, 1, 2, 7, 9, 6, 1, 7, 7, 7, 9, 3, 5] +const invalid5 = [5, 3, 8, 2, 0, 1, 9, 7, 7, 2, 8, 8, 3, 8, 5, 4] + +// Can be either valid or invalid +const mystery1 = [3, 4, 4, 8, 0, 1, 9, 6, 8, 3, 0, 5, 4, 1, 4] +const mystery2 = [5, 4, 6, 6, 1, 0, 0, 8, 6, 1, 6, 2, 0, 2, 3, 9] +const mystery3 = [6, 0, 1, 1, 3, 7, 7, 0, 2, 0, 9, 6, 2, 6, 5, 6, 2, 0, 3] +const mystery4 = [4, 9, 2, 9, 8, 7, 7, 1, 6, 9, 2, 1, 7, 0, 9, 3] +const mystery5 = [4, 9, 1, 3, 5, 4, 0, 4, 6, 3, 0, 7, 2, 5, 2, 3] + +// An array of all the arrays above +const batch = [ + valid1, + valid2, + valid3, + valid4, + valid5, + invalid1, + invalid2, + invalid3, + invalid4, + invalid5, + mystery1, + mystery2, + mystery3, + mystery4, + mystery5, +] + + +// Add your functions below: + +const validateCred = function (card) { + let luhn = 0 + let double = false + + for (let i = card.length - 1; i >= 0; i--) { + let cur = card[i] + + if (double) { + cur *= 2 + } + double = !double + + if (cur > 9) { + cur -= 9 + } + + luhn += cur + } + + return luhn % 10 === 0 +} + +const findInvalidCards = function (cards) { + return cards.filter(card => !validateCred(card)) +} + +const idInvalidCardCompanies = function (invalid) { + let issuingCompanies = [] + const companies = { + 3: 'Amex (American Express)', + 4: 'Visa', + 5: 'Mastercard', + 6: 'Discover', + } + + invalid.forEach((card) => { + let c = companies[card[0]] + + issuingCompanies.push(c || 'Company not found') + }) + + return [...new Set(issuingCompanies)] +} + +const invalid = findInvalidCards(batch) +console.log(invalid.length) +console.log(idInvalidCardCompanies(invalid)) diff --git a/message-generator/main.js b/message-generator/main.js index 2b86d68..0f1a77f 100644 --- a/message-generator/main.js +++ b/message-generator/main.js @@ -20,7 +20,7 @@ const part2 = [ 'but it will turn out perfectly in the end!', ] -const part3 = 'Your lucky number is ' +const part3 = ' Your lucky number is ' const buildMsg = function () { let msg = ''