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()
}
}
}