首页 > 编程语言 > 详细

js 常见算法面试题

时间:2020-10-30 22:26:54      阅读:80      评论:0      收藏:0      [点我收藏+]

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

js 常见算法面试题

原文:https://www.cnblogs.com/yiran2020/p/13903979.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!