// 去重
const arrayUnique = (arr:any, key:any)=>{
let hash = {};
return arr.reduce((item:any, next:any)=>{
hash[next[key]] ? '' : hash[next[key]] = true && item.push(next);
return item;
}, []);
};
/**
* 防抖函数 又可以称为定时任务函数
*/
function debounce_new(func:any, delay:number) {
let timeout:any
return function() {
clearTimeout(timeout)
timeout = setTimeout(() => {
func.apply(this, arguments)
}, delay)
}
}
/**
* 节流函数--避免在一定时间内多次响应
*/
function throttle_new(func:any, delay:number) {
let run = true
return function () {
if (!run) {
return
}
run = false // 持续触发的话,run一直是false,就会停在上边的判断那里
setTimeout(() => {
func.apply(this, arguments)
run = true // 定时器到时间之后,会把开关打开,函数就会被执行
}, delay)
}
}
网友评论