Need Help With Credit Card Checker Challenge Project

hi has anyone done anything with the Credit Card Challenge project before?, im trying to use what I’ve learned and apply it to the project but im just hitting my head against a wall, im totally lost somebody please help and provide detailed instructions

Have you read the documentation for the Luhn algorithm? We need to have some understanding of how that works to be able to go forward with this project.

Given this array, which values will get doubled and their digits added?

[4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8]

And, which values get doubled in this one?

[3, 7, 1, 6, 1, 2, 0, 1, 9, 9, 8, 5, 2, 3, 6]

Once we have that figured out, then we know what to expect.

i have read some of the documentation and i know that, every second digit from the end of the array is doubled, and deducted 9 if it evaluates to a number greater than 9 upon being doubled, then all you do is use the sum modulo of 10 to determine whether or not the card is valid or not the part I’m struggling with is how to double every second number in my for loop, see my code below for more context:

// 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

function validateCred(arr) {

for (let i = 0; i < batch.length; i++) {

arr = batch[i];

for (let j = arr.length-1; j >= 0; j–) {

console.log(arr.reverse(j))

break;

if (j === 14) {

}

};

};

};

validateCred()

We’re only ever reading the batch array so we can write this differently…

for (let card of batch) {
    for (let i = card.length - 1; i >= 0; i--) {

    }
}

We can stop here. Which cell should be doubled in this iteration. We’ve got the correct starting cell, but how do we know which is the next?

Is that your question?


Just spotted this…

Might want to consider what that parameter represents. Is this a function to validate ONE card?