const func=(str)=>{
const map = new Map();
for(let char of str) {
map.set(char,(map.get(char)||0)+1);
}
return Array.from(map).sort((a,b)=>b[1]-a[1])[0][0];
}
const func2=(str)=>{
const map = new Map();
let maxChar = "";
let maxLength = 0;
for(let char of str) {
let count = (map.get(char)||0)+1
map.set(char,count);
if(count>maxLength) {
maxLength = count;
maxChar = char;
}
}
return maxChar;
}
const str = "aabbbccc";
const anagram=(str1,str2)=>{
if(str1.length===0&&str2.length===0
&&str1===""&&str2==="") return true;
if(str1.length===str2.length) {
const map1 = new Map();
const map2 = new Map();
for(let char of str1) {
map1.set(char,(map1.get(char)||0)+1);
}
for(let char of str2) {
map2.set(char,(map2.get(char)||0)+1);
}
if(map1.size!==map2.size) return false;
for(const [key,value] of map1) {
if(!map2.has(key)||map2.get(key)!==value) return false;
}
return true;
}
return false;
}
const str1 = "listen";
const str2 = "sitenl";
const str3 = "listes"
const shuffle=(arr)=>{
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
const deepUniqueArray=(arr)=> {
const set = new Set();
let ans = [];
for(let item of arr) {
let key = typeof item==='object'&&item!==null
?JSON.stringify(item)
:item;
if(!set.has(key)) {
set.add(key);
ans.push(item);
}
}
return ans;
}
const sleep=(ms)=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>{resolve()},ms)
})
}
async function demo() {
console.log("Start");
await sleep(2000);
console.log("End after 1s");
}
const promiseImg=(url)=>{
return new Promise((resolve,reject)=>{
let img = new Image();
img.onload = ()=>resolve(img);
img.onerror = ()=>reject(new Error("failed to load img"));
img.src = url;
})
}
const shallowEqual=(obj1,obj2)=>{
if(obj1===obj2) return true;
if(typeof obj1!=='object'
||typeof obj2!=='object'
||obj1===null||obj2===null
) return false;
if(Object.keys(obj1).length!==Object.keys(obj2).length) return false;
for(const key of Object.keys(obj1)) {
if(!obj2.hasOwnProperty(key)
||obj2[key]!==obj1[key]
) return false;
}
return true;
}
const deepClone=(source)=>{
if(typeof source!=='object'||source===null) return source;
let clone = Array.isArray(source)?[]:{}
for(const key in source) {
clone[key] = deepClone(source[key])
}
return clone;
}
const source = {
a: 1,
b: { c: 2, d: [3, 4] }
};
const copy = deepClone(source);
const outer=()=>{
let count = 0;
return ()=>{
count++;
return count;
}
}
const flattenObject=(obj,prefix='',result={})=>{
for(let key in obj) {
const fullKey = prefix?`${prefix}.${key}`:key;
const value = obj[key];
if(typeof value==='object'&&value!==null) {
flattenObject(obj[key],fullKey,result)
}
else {
result[fullKey] = value;
}
}
return result;
}
console.log(flattenObject({
a: 1,
b: {
c: 2,
d: {
e: 3
}
}
})
)
console