深信服前端二面面经
先做两道题
题目1:实现一个对树型结构进行过滤的函数,其中树形结构的格式如下:
tree = [
{name: 'A'},
{name: 'B', children: [
{name: 'A'},
{name: 'AA', children: [...]}
]},
{name: 'C'}
]
1. 假设我输入的 str 为 A 则过滤后返回的结果为
[
{name: 'A',children: [name: 'bcde']},
{name: 'B', children: [
{name: 'A'}
]}
]
2. 假设我输入的 str 为 AA 则过滤后返回的结果为
[
{name: 'B', children: [
{name: 'AA', children: [...]}
]}
]
// 实现该函数,要求不允许对原有的tree做任何修改,最终返回结果是一棵新结构出来的树
function filter (tree, str) {
} 题目2:实现一个函数 checkCount,能匹配出数组中连续为 a 的最大次数,并返回。
如:var arr = ['a', 'b', 'b', 'a', 'a', 'a', 'b', 'a'];
checkCount(arr) => 3
function checkCount (arr) {
} 1、js继承2、你知道哪些http状态码
3、数组和链表的区别
4、什么是BFC,怎么开启BFC,具体应用场景
5、vue中怎么实现继承
6、实习项目介绍
7、项目中遇到影响最深的问题怎么解决
8、最近有看什么文章或者书籍(把0.1 + 0.2 为什么不等于0.3跟他说了一下,然后被追问怎么封装一个能实现正常加减乘除的函数)
9、算法:反转链表(很简单,写了一个函数给他看)
10、概率题:一个部门中后台1/3,前端2/5,前后端都会的是1/4,不是开发的有多少。(这个当时我陷入牛角尖了,没答上来。。。)
反问环节
#深信服##面经##前端工程师##校招#10、概率题:一个部门中后台1/3,前端2/5,前后端都会的是1/4,不是开发的有多少。(这个当时我陷入牛角尖了,没答上来。。。)
反问环节
