两道简单的面试题,确难住了9年"经验"的面试者

583 阅读1分钟

引子

最近 我们前端团队在招人,由我来负责面试。最近面了很多人,深感招聘不易,有些面试者甚至颠覆了我对“经验”二字的理解,也不是说水平都很差, 有些比较优秀一点呢,人家的选择又比较多,不太愿意来我们这样的小团队!

市场上有很多2到3年经验的前端 ,我想2-3年经验,我问一个数组求和应该不难,看看 代码能力如何 问题一:

// 请封装一个函数,对数组进行求和
let arr = [1,2,3,4,5,6,7,8,9,10];

// 参考答案 
function getSum(arr) {
  let result = 0;
  for (let i = 0; i < arr.length; i++) {
    result += arr[i];
  }
  return result;
}

结果 ,超乎我的想象,有的人把 result 变量 定义在函数外,有的人在 for() 写逗号 ,一点也不夸张!欢迎在评论区提供更多的解法!

对于经验稍微丰富一点的,我会稍稍增加一点儿难度,比如这个,在实际项目场景中还比常见:

// 有一个手机号 18043779087 ,需要把中间的4位变成*号 如:180****9087
let phoneNumber = '18023229090';

// 参考解法一:
let hidePhoneNumber = phoneNumber.slice(0, 3) + '****' + phoneNumber.slice(-4);

// 参考解法二:
let hidePhoneNumber = phoneNumber.replace(/^(\d{3})(\d{4})+$/, '$1****$2');

// 参考解法三:
let hidePhoneNumber = phoneNumber
  .split('')
  .map((x, i) => (i > 2 && i < 7 ? '*' : x))
  .join('');

console.log(hidePhoneNumber);

后记

对于一个中高级的前端工程师岗位,你认为这些题有难度吗? 欢迎谈谈你的看法!

我一定会招到合适的人,欢迎继续关注我后面的分享!