扁平化数组,去重,防抖节流

数组的扁平化处理
function fun1() {
  const arr = [1, [2, [3, [4, 5]]], 6]
  const abc = arr.flat(Infinity) // 不管有多少层嵌套,都要转成一维数组,用Infinity关键字作为参数
  console.log(abc)
  const flatten = arr => {
    return arr.reduce((qian, hou) => { // 利用reduce函数进行处理
      return qian.concat(Array.isArray(hou) ? flatten(hou) : hou)
    }, []) // 后面的空数组为初始值对应 qian 这个参数
  }
  const res4 = flatten(arr)
  console.log(res4)
  console.log(arr.toString().split(',').map(Number)) // map(Number) map(String) 可以将数组里面的值转为对应的值
}
fun1()

数组去重
function fun2() {
  const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}]
  //   const abc = Array.from(new Set(arr))
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] === arr[j]) {
        arr.splice(j, 1)
      }
    }
  }
  console.log(arr)
}
fun2()

防抖 最后一次执行为准 如浏览器的拖动 期间一直出发也不执行
  var a = null
function name(params) {
  clearInterval(a)
  a = setInterval(() => {
    console.log('123')
  }, 1000)
}
name()
节流 比防抖少了一层清除定时器
const throttle = (fn, time) => {
  let flag = true
  return function() {
    if (!flag) return
    flag = false
    setTimeout(() => {
      console.log('123')
    }, time)
  }
}
		var condition;
		 function name(params) { // 节流函数利用 return 不执行后面代码特性 ,进行多次掉用也不执行
			//  debugger
			 if (condition) { // 当condition 为true的时候  return后面的代码就不执行了
				 return; 
			 }
			condition = true
			 setTimeout(() => {
				// 执行需要执行的函数
				console.log('需要执行的代码');
				condition = false
			 }, 2000);
		 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值