anagram

Benchmark created on


Test runner

Ready to run.

Testing in
TestOps/sec
// for loop and replace
function isAnagram(stringA, stringB) {
  if (stringA.length !== stringB.length) return false;
  let stringBcopy = stringB;

  for (let char of stringA) {
    stringBcopy = stringBcopy.replace(char, "");
  }

  return stringBcopy.length === 0;
}
ready
// regex to saniteze then compare string
function isAnagram(a, b) {
  const sanitizeString = (text) => {
    return text
      .toLowerCase()
      .replace(/[^a-z]/g, "")
      .split("")
      .sort()
      .join("");
  };
  return sanitizeString(a) === sanitizeString(b);
}
ready
//// use hashmap create 2 maps
function isAnagram(stringA, stringB) {
  if (stringA.length !== stringB.length) return false;

  const createCharMap = (text) => {
    const obj = {};
    for (let c of text) {
      obj[c] = obj[c] ? obj[c] + 1 : 1;
    }
    return obj;
  };

  let stringAMap = createCharMap(stringA);
  let stringBMap = createCharMap(stringB);
  for (let char in stringAMap) {
    if (stringAMap[char] !== stringBMap[char]) return false;
  }
  return true;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.