前端面试笔试题分享

前端面试分享

前言

2019年9月中旬,决定从之前的公司离职。恰逢家里有些事情,我在十月上旬的末尾重新回到上海,并与中旬开始投递简历。感觉不同于以前,不需要怎么复习就能拿 Offer,我开始去面试的时候,大多时候面壁。在这期间,想想还是写点 blog, 记录下来这次特殊的求职经历,并以此共勉。

知名公司及笔试题分析

笔试题其实对面试者来说,并不友好。实际开发时,开发者一般都有熟悉的ide,代码补全等工具进行辅助。当转移到了纸上,应聘者不仅需要牢记这些 api,留空白行的手感也完全不同。没有好好准备的话,不经浪费了大量的时间,而且还很容易被刷掉。因此,有换工作的同学,请务必提前3个月刷下题目,并练习下手写代码。

  1. 百度众测
    百度旗下的平台。稍微有点坑,对算法要求比较高。吐槽下,在JD里添加下重点考察算法如何。

1.1 实现排序

function isArray(arr) {
  return Object.prototype.toString.call(arr) === '[object Array]';
}
function sort(arr) {
  if (!isArray(arr)){
    return [];
  }
  if (arr.length < 2) {
    return [];
  }
  var length = arr.length;
  var temp = [arr[0]];
  for (var i = 1; i < length; i++) {
    var tlen = temp.length;
    for(var j = 0; j < tlen; j++) {
      if(arr[i] <= temp[0]) {
        temp.unshift(arr[i]);
        break;
      }
      if (arr[i] >= temp[tlen - 1]) {
        temp.push(arr[i]);
        break;
      }
      if (arr[i] >= temp[j] && arr[i] <= temp[j+1]){
        temp.splice(j+1, 0, arr[i]);
        break;
      }
    }
  }
  return temp;
}
var arr = [5,4,3,2,1,2,3,6];
sort(arr); // (8) [1, 2, 2, 3, 3, 4, 5, 6]

1.2 查找长字符中重复字符最多的字符

function filter(string){
  var acc = [];
  var temp = string.split('').sort();
  var length = string.length;
  var bcc = [];
  for (var i = 0; i < length; i++) {
    if (temp[i] !== bcc[0]) {
      acc.push(bcc);
      bcc = [];
      bcc.push(temp[i]);
    } else {
      bcc.push(temp[i]);
    }
    continue;
  }
  // return acc;
  console.log(acc); // [Array(0), Array(1), Array(5), Array(2), Array(6), Array(2)]
  var accLen = acc.length;
  var maxLen = 0;
  var maxInd = 0;
  for (var j = 0; j < accLen; j++) {
    if (acc[j].length > maxLen) {
      maxLen = acc[j].length;
      maxInd = j;
    }
  }
  return acc[maxInd];
}
var str = 'asjfsjfjsifjilsjflsjf';
filter(str); // ["j", "j", "j", "j", "j", "j"]

不定期更新

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值