1.请写出该代码块执行顺序
async function async1 () {
console.log(‘async1 start‘)
await async2(); console.log(‘async1 end‘)
}
async function async2 () {
console.log(‘async2‘)
}
console.log(‘script start‘)
setTimeout(function () {
console.log(‘setTimeout‘)
}, 0)
async1()
new Promise(function (resolve) {
console.log(‘promise1‘)
resolve()
}).then(function () {
console.log(‘promise2‘)
})
console.log(‘script end‘)
//‘script start‘ ‘async1 start‘ ‘async2‘ ‘promise1‘ ‘script end‘ ‘async1 end‘ ‘promise2‘ ‘setTimeout‘
2.请将该data数组铺平
const data = [
{
id: 1,
title: "课程1",
children: [
{ id: 4, title: "课程1-1" },
{
id: 5,
title: "课程1-2",
children: [
{ id: 6, title: "课程1-2-1" },
{ id: 7, title: "课程1-2-2" },
],
},
],
},
{ id: 2, title: "课程2" },
{ id: 3, title: "课程3" },
];
输出结果:
const resData = [
{ id: 1, title: "课程1" },
{ id: 4, title: "课程1-1" },
{ id: 5, title: "课程1-2" },
{ id: 6, title: "课程1-2-1" },
{ id: 7, title: "课程1-2-2" },
{ id: 2, title: "课程2" },
{ id: 3, title: "课程3" },
];
function formatData(data) {
let newarr = [];
function format(data) {
data.forEach((item) => {
if (item.id && item.title) {
newarr.push({ id: item.id, title: item.title });
Array.isArray(item.children) ? format(item.children) : "";
}
});
}
format(data);
return newarr;
}
console.log(formatData(data));
3.请实现函数防抖
function debounce() {
let timer = null;
return function() {
clearTimeout(timer);
timer = setTimeout(function() {
console.log("事件被触发");
}, 1000);
};
}
原文:https://www.cnblogs.com/yiran2020/p/13903979.html