2021-01-22

前端面试小伙伴投来的求救?

  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 startasync1 startasync2promise1script endasync1 endpromise2setTimeout

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 formatData = [ { 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: 1, title: “课程2” }, { id: 1, title: “课程3” },];

function treetoArray(data) { let temp = []; Array.from(data).forEach((record) => { temp.push(record); if (record.children && record.children.length > 0) { const children = treetoArray(record.children); temp = temp.concat(children); delete record.children; } }); return temp;} console.log(treetoArray(data)); let temp = []; function treetoArray(data) { for (var i = 0; i < data.length; i++) { temp.push(data[i]); if (data[i].children) { treetoArray(data[i].children); delete data[i].children; } } } treetoArray(data); console.log(temp);

1. 请实现函数防抖
  function debounce(func, wait, immediate) {
    let timer;
    return function() {
      let context = this,
          args = arguments;
           
      if (timer) clearTimeout(timer);
      if (immediate) {
        let callNow = !timer;
        timer = setTimeout(() => {
          timer = null;
        }, wait);
        if (callNow) func.apply(context, args);
      } else {
        timer  = setTimeout(() => {
          func.apply
        }, wait)
      }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值