class LRU {
//设置数据、长度
constructor(capacity) {
this.data = new Map();
this.capacity = capacity;
}
//获取时将目标数据提前
get(key) {
if (this.data.has(key)) {
let value = this.data.get(key);
this.data.delete(key);
this.data.set(key, value)
return value;
} else {
return null;
}
}
set(key, value) {
if (this.data.has(key)) {
this.data.delete(fistKey);
} else if (this.data.size === this.capacity) {
//如果超出了容量,则需要删除最早的数据
let fistKey = this.data.keys().next().value
this.data.delete(fistKey);
}
this.data.set(key, value)
}
}
const lru = new LRU(5);
数组扁平化
function flatten(arr) {
let res = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
// res.push(flatten(arr[i])) 只可能会减少嵌套层级
res = res.concat(flatten(arr[i]));
} else {
res.push(arr[i]);
}
}
return res;
}
统计字符串中各个字符出现的次数
function countCharacters(str) {
const charCount = {};
for (let char of str) {
charCount[char] = (charCount[char] || 0) + 1;
}
return charCount;
}