阿里在线前端笔试题

时间:2017-05-08 笔试题目 我要投稿

  一共13题,6个选择,1题是github地址或博客微博地址,6个大题。

  选择题第一题:

  var arr = [1,2,3,4,5];

  arr.splice(1,2,3,4,5);

  arr?

  考察数组splice的用法。

  后面几个选择题忘了(别打脸),选择题都不是很难。

  大题:

  1.考查css的基本知识,给出html基本代码。写css代码, 每个div是一个盒子模型。中间文字水平垂直居中,三个盒子水平排列。(比较基础,代码就不上了)

  2.多维数组转一位数组:原题:[1,[2,3]] ==》 [1,2,3]

  var arr = [1,[[4,5,6],2,[[[7,8,9]]],3]]; //转成一位数组:[1, 4, 5, 6, 2, 7, 8, 9, 3]

  function f(arr){

  if(Object.prototype.toString.call(arr) != '[object Array]') //判断arr是不是数组

  return;

  var newArr = [];

  function fn(arr){

  for (var i = 0; i < arr.length; i++) {//遍历数组

  if(arr[i].length){//判断是不是多维数组

  fn(arr[i]); //递归调用

  }else{

  newArr.push(arr[i]);

  }

  }

  }

  fn(arr);

  return newArr;

  }

  console.log(f(arr));

  当时在做试卷的时候 没有考虑多维数组,只片面的为了解题,没有用递归。

  3.数字类型转千分位表示

  var num = 123456789.9; //结果转成千分位表示 123,456,789.9

  function f(num){

  if(typeof num != 'number')

  return;

  num += '';

  if(num.indexOf('.')!=-1){ //判断是否存在小数

  return fn(num.split('.')[0])+'.'+num.split('.')[1];

  }else{

  return fn(num);

  }

  function fn(newNum){

  var str = '';

  var l = newNum.length;

  while(l>3){

  str = ','+newNum.substring(l-3,l) + str;

  l = l-3;

  }

  str = newNum.substring(0,l) + str;

  return str;

  }

  }

  console.log(f(num));

  4.解析url:var str = 'https://s.weibo.com/weibo/Aralic?topnav=1&wvr=6'获得参数名和参数值:

  (以前做过类似的题目,解析url一系列的值,阿里这题感觉稍微简单一点)

  function f(url){

  var l = url.indexOf('?');

  if(l!=-1){

  var obj = {};

  var arr = url.substring(l+1,url.length).split('&');

  for(var i = 0; i

  obj[arr[i].split('=')[0]] = arr[i].split('=')[1];

  }

  return obj;

  }

  }

  console.log(f('https://s.weibo.com/weibo/Aralic?topnav=1&wvr=6'))

阿里在线前端笔试题相关推荐