当前位置: 首页 > 面试经验 >

9.8日完美世界前端笔试—B卷

优质
小牛编辑
101浏览
2023-03-28

9.8日完美世界前端笔试—B卷

前言

  • 限时1.5h,单选21 * 3分 + 不限选择题9 * 3分(注意少选得1分哦)+ 问答题*2(20 + 10分)
  • 我发现不管笔试难或易,总会有人吐槽“XXX公司是不是不想招人啊”,简单的就说刷不了人,难的就说都被刷了…… 哈哈哈
  • 哎,光做笔试真没劲!我倒要看看哪家先进面

选择题

选择题考得很简单,限于HTML、CSS、JS。大部分是css的问题比如box-sizing的值、 有哪些伪元素、flex:auto的属性简写。

问答题

没有编程,这部分应该算是编程题吧,可以用本地IDE。难道又要人工改卷嘛。

1. 写一个方法,求出路口到A到路口B的最短路径

- 题干就是这样的。就是求图的最短路径嘛,但是没有输入输出,也不知道该怎么写。
/* 
  求图的最短路径。
  题目啥都不给,怎么写呀?  
*/

// 假设已给出图的邻接矩阵,各点A、B、C用数字0、1、2……表示。所以找到0-1的最短路径就可以了

// 测试:
let arr = [[2, 3, 5], [3], [0], [0, 1], [1], [0]];
console.log(minRoad(arr));  // [0,3,1]

function minRoad(arr) {
  let start = arr[0], roads = []
  for(let i = 0; i < start.length; ++i) {
    dfs(start[i], arr, [0])
  }
  return roads.sort((a,b) => a.length - b.length)[0]

  function dfs(next, arr, road) {
    // 这种情况下说明有环或者回头路,此路不通
    if(road.includes(next)) {
      return 
    }
    // 这个说明找到路了
    if(next === 1) {
      roads.push([].concat(road, next))
      return 
    }
    // 如果没有找到,就继续往下
    let nextPoint = arr[next];
    for (let i = 0; i < nextPoint.length; ++i) {
      dfs(nextPoint[i], arr, [].concat(road, next));
    }
  }
}


2. 写一个功能,实现页面动态展示本年的剩余天数——“XX年还剩XX天XX时XX分XX秒”

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h2 id="time"></h2>
  <script>
    /* 
      思路是用下一年的1.1日减去现在的时间的毫秒数,再格式化日期。
      动态变化是用setInterval来实现的
    */
      let div = document.getElementById('time');
      setInterval(() => {
        let date = new Date()
      let now = date.getTime();
      let nextYear = date.getFullYear() + 1;
      let end = new Date(`${nextYear}-01-01`).getTime();
      let last = end - now;
        let show = getDate(date.getFullYear(), last);
        div.innerText = show;
      }, 1000);

      // 格式化时间
      function getDate(year, time) {
        let relsecond = Math.floor((time/1000)%60);
        let minute = ((time/1000)/60);
        let relminute = Math.floor(minute%60);
        let hour = minute/60;
        let relhour = Math.floor(hour%24);
        let relday = Math.floor(hour/24);
        return `${year}年还剩${relday}天${relhour}时${relminute}分${relsecond}秒`
      }
  </script>
</body>
</html>





#完美世界##完美世界笔试##前端工程师#
 类似资料: