笛卡爾積算法 防抖 節流

 

var  arr = [[1,2,3], ['a','b','c'], ['x','y']]

// 笛卡爾積算法 商品sku生成
function calcDescartes(arr) {
  if (arr.length < 2 ) return arr.join('')
  return arr.reduce((lastItem, currentItem) => {
    let res = []
    lastItem.forEach(x => {
      currentItem.forEach(y => {
        res.push(x + '_' + y)
      })
    })
    return res
  })
}

防抖:在一定時間內只執行一次

 

節流:每隔一定時間就執行一次


// 防抖 在一定時間內只執行一次
function debounce(fn, wait) {
  var timeout = null
  return function () {
    if (timeout !== null) clearTimeout(timeout)
    timeout = setTimeout(fn, wait)
  }
}
// 節流
let throttle = function (func, delay) {
  let prev = Date.now()
  return function () {
    let context = this
    let args = arguments
    let now = Date.now()
    if (now - prev >= delay) {
      func.apply(context, args)
      prev = Date.now()
    }
  }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章