JSFiddle - React, Tailwind, and code Playground

by craigm

JavaScript

// euler #4
var isPalindromic = function (num) {
    var s = String(num),
        halfIndex, first, last;
    
    if (s.length % 2 !== 0)  {
        halfIndex = (s.length - 1) / 2;
        first = s.substring(0, halfIndex);
        last = s.substring(halfIndex + 1, s.length);
    } else {
        halfIndex = s.length / 2;

        first = s.substring(0, halfIndex);
        last = s.substring(halfIndex, s.length);
    }
    
    last = last.split('').reverse().join('');
    return first === last;
};

var numbers = [],
    palindromes = [],
    product;

// fill the array with numbers from 100-999
for (var i = 100; i < 1000; i++) {
    numbers.push(i);   
}

// find all palindromes and store in an array
for (var i = 899; i >= 0; i--) {
    for (var j = i-1; j >= 0; j--) {
        product = numbers[i] * numbers[j];
        if (isPalindromic(product)) palindromes.push(product);
    }
}

// sort palindromes low to high
palindromes.sort(function (a, b) {
    if (a < b) return -1;
    if (a > b) return 1;
    return 0;
});

// return the answer
console.log(palindromes[palindromes.length-1]);