数组的扁平化处理
function fun1() {
const arr = [1, [2, [3, [4, 5]]], 6]
const abc = arr.flat(Infinity)
console.log(abc)
const flatten = arr => {
return arr.reduce((qian, hou) => {
return qian.concat(Array.isArray(hou) ? flatten(hou) : hou)
}, [])
}
const res4 = flatten(arr)
console.log(res4)
console.log(arr.toString().split(',').map(Number))
}
fun1()
数组去重
function fun2() {
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}]
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) {
if (condition) {
return;
}
condition = true
setTimeout(() => {
console.log('需要执行的代码');
condition = false
}, 2000);
}