// verify if 2 strings are anagram - An anagram is a word, phrase or name formed by rearranging the letters of another
// e.g cinema and iceman
function isAnagram(string1, string2) {
if (string1.length !== string2.length) return false;
let str1 = string1.toLowerCase();
let str2 = string2.toLowerCase();
let obj1 = {};
let obj2 = {};
for (let val of str1) {
// obj1[val] = (obj1[val] || 0) + 1; // check if key exist - if not - add the key and initiate with value 1 else increment the value
obj1[val] ? obj1[val] = obj1[val] + 1: obj1[val] = 1;
}
for (let val of str2) {
// obj2[val] = (obj2[val] || 0) + 1; // check if key exist - if not - add the key and initiate with value 1 else increment the value
obj2[val] ? obj2[val] = obj2[val] + 1: obj2[val] = 1;
}
console.log(obj1);
console.log(obj2);
if (Object.values(obj1).length !== Object.values(obj2).length) { // compare length - Object.values(obj) returns array of object values
return false;
}
for (let key in obj1) {
if(obj1[key] !== obj2[key]) { // compare values for specific keys
return false
}
}
return true;
}
const areStringsAnagram = isAnagram('cinemaa', 'icemana');
console.log(areStringsAnagram);