Step 12

Here is the completed Luhn algorithm:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

You can try the above for another valid input, 6011329933655299.

Now you can complete the starter code by providing an implementation for the isCardNumberValid function:

function isCardNumberValid(cnumber) { let arr = cnumber .split("") .reverse() .map((element) => parseInt(element)); const sum = arr.reduce(reducer, 0); function reducer(accumulator, currentValue, currentIndex) { currentIndex += 1; // account for 0-based indexing if (currentIndex % 2 === 0) { // even index currentValue *= 2; if (currentValue > 9) { currentValue -= 9; } } return accumulator + currentValue; } return sum % 10 === 0; }

Here is the payment form in action: