阿里在线前端笔试题

本人大三,非985,211。

参加了2015年暑假实习校园招聘,好吧,其实就看看题目长什么样字、废话不多说,上题。

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

选择题第一题:


  1. var arr = [1,2,3,4,5]; 
  2. arr.splice(1,2,3,4,5); 
  3. arr? 

考察数组splice的用法。

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

大题:

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

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


  1. var arr = [1,[[4,5,6],2,[[[7,8,9]]],3]]; //转成一位数组:[1, 4, 5, 6, 2, 7, 8, 9, 3] 
  2. function f(arr){ 
  3.     if(Object.prototype.toString.call(arr) != '[object Array]')  //判断arr是不是数组 
  4.         return; 
  5.     var newArr = []; 
  6.     function fn(arr){  
  7.         for (var i = 0; i < arr.length; i++) {//遍历数组 
  8.             if(arr[i].length){//判断是不是多维数组 
  9.                 fn(arr[i]);    //递归调用 
  10.             }else{ 
  11.                 newArr.push(arr[i]); 
  12.             } 
  13.         } 
  14.     } 
  15.     fn(arr); 
  16.     return newArr; 
  17. console.log(f(arr)); 

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

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


  1. var num = 123456789.9; //结果转成千分位表示 123,456,789.9 
  2. function f(num){ 
  3.     if(typeof num != 'number') 
  4.         return; 
  5.     num += ''; 
  6.     if(num.indexOf('.')!=-1){ //判断是否存在小数 
  7.         return fn(num.split('.')[0])+'.'+num.split('.')[1]; 
  8.     }else{ 
  9.         return fn(num); 
  10.     } 
  11.     function fn(newNum){ 
  12.         var str = ''; 
  13.         var l = newNum.length; 
  14.         while(l>3){ 
  15.             str = ','+newNum.substring(l-3,l) + str; 
  16.             l = l-3; 
  17.         } 
  18.         str = newNum.substring(0,l) + str; 
  19.         return str; 
  20.     } 
  21. console.log(f(num)); 

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

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


  1. function f(url){ 
  2.     var l = url.indexOf('?'); 
  3.     if(l!=-1){ 
  4.         var obj = {}; 
  5.         var arr = url.substring(l+1,url.length).split('&'); 
  6.         for(var i = 0; i<arr.length; i++){ 
  7.             obj[arr[i].split('=')[0]] = arr[i].split('=')[1]; 
  8.         } 
  9.         return obj; 
  10.     } 
  11. console.log(f('http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6')) 

有幸看到的园子大牛帮忙给点意见,不是专门学计算机的,算法比较差。

来源:51CTO

时间: 2024-09-28 01:34:28

阿里在线前端笔试题的相关文章

JS前端笔试题分析_javascript技巧

本文实例分析了JS前端笔试题.分享给大家供大家参考,具体如下: 1.如何根据逗号分隔的字符串创建数组呢?请为下面的字符串创建一个数组,并访问第三个元素:"cats,dogs,birds,horses" 知识点:数组和字符串的转换.考察split() 方法.把一个字符串分割成字符串数组(将字符串按某个字符切割成若干个字符串,并以数组形式返回) var animalString="cats,dogs,birds,horses"; var animalArray=anim

算法-京东在线笔试题,关于排列组合的问题

问题描述 京东在线笔试题,关于排列组合的问题 考虑数字序列{1,3,4,2,6,7,5,5,8,10,9,10,7,17},任取其中几个数字相加,使得到的和为29, 则不同的组合有几种?(第2,第3,第7,第14个数的组合与第2,第3,第13,第14个数的 组合看起来是一样的,都是3,4,5,17,那么这里只视为一种) 解决方案 修正下,96种http://ideone.com/kNl4Mw using System; using System.Linq; using System.Collec

JS经典正则表达式笔试题汇总_javascript技巧

本文实例总结了JS经典正则表达式笔试题.分享给大家供大家参考,具体如下: 一.复习字符串的传统操作 如何获取一个字符串中的数字字符,并按数组形式输出,如 dgfhfgh254bhku289fgdhdy675gfh 输出[254,289,675] 分析:循环用charAt()的方法获取到每一个子字符串,判断他是不是在0~9之间,是就把他扔到准备好的数组里 var str="dgfhfgh254bhku289fgdhdy675gfh"; findNum(str); function fin

阿里巴巴一道智力题笔试题

问题描述 阿里巴巴一道智力题笔试题 有三张牌A,B,C,其中一张是King.如果你押中了King,那么就获胜,否则就输.现在你选择了押其中的一张牌1,电脑帮你排除了另外两张牌中的一张2,那么你是否重新选择押3,从而更容易获胜? http://www.manong1024.com/q/403 解决方案 google 三扇门问题真怀疑这是不是阿里的题,感觉很低级很low,像庙会灯谜上的题. 解决方案二: 假设挑选A其为king的概率p=1/3剩下的BC中为king的概率p=2/3.假设主持人又给你排

阿里云前端工程化工具 - Dawn

一.Dawn 简介 Dawn(后续将简称为 DN)是阿里云前端团队,新一代的前端构建工具,简化并统一了针对开发人员的「命令行接口」,将开发过程抽象为有序的 6 个阶段 + 1 个常用操作.不会因为工具本身的扩展,而扩展新的用法,统一.一致,免于记忆,通过 DN 创建的工程还将会结合 GitLab CI 进行持续集成. DN 相较于同类工具的特点是什么? 简单.统一.一致,无论扩展还是使用它. 无关框架.甚至可以无关语言.轻中心化(并非完全去中心化,而是「轻」) 松散且易于整合,注重重用,易于扩展

一道用 sizeof 求结构体所占大小的笔试题?求教

问题描述 一道用 sizeof 求结构体所占大小的笔试题?求教 下列程序,为什么输出的结果是 120? int main(int argc, char* argv[]) { union u_type { int i; double x; float f; }; struct str_type { char str[100]; union u_type u[2]; }; printf("%dn",sizeof(struct str_type)); } 解决方案 首先union u_typ

阿里云前端周刊 - 往期回顾(1-3)

阿里云前端周刊 - 第 1 期 一.推荐. 1. 如何撰写 Git 提交信息 https://chris.beams.io/posts/git-commit/ 重建一段代码的上下文是非常费时费力的,这是无法完全避免的.所以我们应该努力尽可能的减少它.提交信息可以帮上这个忙,也正因为此,一个提交信息反应了一名开发者是不是个好的协作者. 2. 十个关于 Node.js REST API 的最佳实践 http://zcfy.baomitu.com/article/10-best-practices-f

Spring,hibernate,struts经典面试笔试题(含答案)_java

本文讲述了Spring,hibernate,struts经典面试笔试题及其参考答案.分享给大家供大家参考,具体如下: 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: ① . 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代

java笔试题,根据代码写结果

问题描述 java笔试题,根据代码写结果 public class Base { int i; Base() { add(1); } void add(int v) { i+=v; } void print() { System.out.println(i); } } public class Extention extends Base { Extention() { add(2); } void add(int v) { i+=v*2; } } public class Qd01 { pub