JSFiddle - React, Tailwind, and code Playground

by M. Junaid Salaat

JavaScript

function fancy(s,i) {
 return(i=i||0)<0||i>=s.length>>1||s[i]==s[s.length-1-i]&&fancy(s,++i);
}

function standard(str) {
    return str == str.split('').reverse().join('');
}

function kiss(str) {
  var len = Math.floor(str.length / 2);
  for (var i = 0; i < len; i++)
    if (str[i] !== str[str.length - i - 1])
      return false;
  return true;
}

function isScrambledPalindrome( input ) { 
    var chars = {}; 
    input.split("").forEach(function(char) { 
        if (chars[char]) { 
            delete chars[char] 
        } 
        else { 
            chars[char] = "odd" 
        } 
    }); 
    return (Object.keys(chars).length <= 1); 
}

function clockTime(fn) {
  var dt = new Date();
  var max = 1000000;
  for(var i = 0; i < max; i++) {
    fn('racecar');
  }
  return Date.now() - dt.getTime();
}

console.log({
'keeping it simple': clockTime(isScrambledPalindrome),
'keeping it simple': clockTime(kiss)
});