js 冒泡,去重,指定范围随机数,防抖节流函数

冒泡排序

let arr=[4,5,108,33,42,52,19]
let item;
for(let i=0;i<arr.length;i++){
 for(let j=i+1;j<arr.length;j++){
     if(arr[i]<arr[j]){
         item=arr[i]
         arr[i]=arr[j]
         arr[j]=item 
     }
 }
}
console.log(arr)  //[108, 52, 42, 33, 19, 5, 4]

去重

let arr=[4,4,108,33,33,52,109]
for(let i=0;i<arr.length;i++){
 for(var j=i+1;j<arr.length;j++){
     if(arr[i]==arr[j]){
		arr.splice(j,1)
		j--
     }
 }
}
console.log(arr) //[4, 108, 33, 52, 109]

es6 set去重
function unique (arr) {
return Array.from(new Set(arr))
}
console.log(unique(arr)) //[4, 108, 33, 52, 109]

随机数函数

 function num(a,b){
  return Math.floor(Math.random()*(b-a+1)+a)
 }
 console.log(num(3,8))

防抖,节流

  • 防抖=>函数调用,控制函数延迟执行,延迟时间内再次触发调用,则重新进入延迟
   function antiShake(){
   clearTimeout(tiem)
     const tiem=setTimeout(()=>{
   	  console.log('执行结果')
     },300)
   }
  • 节流=>使得一定时间内只触发一次函数,通过判断是否到达一定时间来触发函数
   function throttle(){
   let flag=true
   return function(){
    if(!flag) return
    flag=false
    setTiemout(()=>{
        console.log('执行节流')
    },300)
   }
   clearTimeout(tiem)
     const tiem=setTimeout(()=>{
     	  flag=true
   	  console.log('执行结果')
     },300)
   }
  • 总结
    函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。 比如在页面的无限加载场景下,我们需要用户在滚动页面时,每隔一段时间发一次 Ajax 请求,而不是在用户停下滚动页面操作时才去请求数据。这样的场景,就适合用节流技术来实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值