Sunday, November 17, 2024
Google search engine
HomeLanguagesJavascriptHow to check a given string is an anagram of another string...

How to check a given string is an anagram of another string in JavaScript ?

In this article, we will learn how to check a given string is an anagram of another string in JavaScript. Before that, we should learn what is an anagram.

An anagram is a word or sentence, which usually contains all the original letters exactly once, in order to arrange the letters of a different term or phrase. Some of the examples are given below:

  • evil = vile
  • a gentleman = elegant man
  • eleven plus two = twelve plus one

There are many approaches through which we can compare a string as an anagram of another string:

Approach 1: Using split(), sort(), and join() Methods

In this article, we will use in-built functions such as split(), sort(), and join() to check if a given string is an anagram of another string in JavaScript.

Example:

Javascript




function checkAnagram(a, b) {
 
    // Not of same length, can't be Anagram
    if (a.length !== b.length) {
        return false;
    }
 
    // Inbuilt functions to rearrange the string
    let str1 = a.split('').sort().join('');
    let str2 = b.split('').sort().join('');
 
    let result = (str1 === str2);
    return result;
}
 
// Checking the output
console.log(checkAnagram('abc', 'cba'));


Output

true


Approach 2: Using for loop

In this article, we will the javascript for loop to check if a given string is an anagram of another string in JavaScript.

Example:

Javascript




function checkAnagram(a, b) {
    let array = {};
    if (a === b) {
        return true;
    }
    if (a.length !== b.length) {
        return false;
    }
    let minCharCode = Math.min(getMinCharCode(a),
                               getMinCharCode(b));
 
    for (let i = 0; i < a.length; i++) {
        let res = a.charCodeAt(i) - minCharCode;
        array[res] = (array[res] || 0) + 1;
    }
 
    for (let j = 0; j < b.length; j++) {
        let res = b.charCodeAt(j) - minCharCode;
        if (!array[res]) {
            return false;
        }
        array[res]--;
    }
    return true;
}
 
function getMinCharCode(str) {
    let minCharCode = Infinity;
    for (let i = 0; i < str.length; i++) {
        let charCode = str.charCodeAt(i);
        if (charCode < minCharCode) {
            minCharCode = charCode;
        }
    }
    return minCharCode;
}
 
console.log(checkAnagram('abc', 'cba'));


Output

true


Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!

RELATED ARTICLES

Most Popular

Recent Comments