zoukankan      html  css  js  c++  java
  • 阿里在线前端笔试题

    本人大三,非985,211。

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

    一共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));

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

    更优做法:感谢 @ double Net

    [1,[[4,5,6],2,[[[7,8,9]]],3]].toString().split(",")

    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 = 'http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6'获得参数名和参数值:

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

    在《javascript语言精粹》一书中看到使用正则 表达式 直接解析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<arr.length; i++){
                obj[arr[i].split('=')[0]] = arr[i].split('=')[1];
            }
            return obj;
        }
    }
    console.log(f('http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6'))

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

    我的github博客:http://aralic.github.io/  

    对markdown更友好一点,排版也舒服一些。

    虽然是做前端的,但是对自己博客的不知道为什么不想自己设计自定义样式。

  • 相关阅读:
    Spring读书笔记
    window.open参数详解
    在spring security3上实现验证码
    Struts2.1 标签详细说明
    总结一下log4j
    【转】hibernate映射oracle自增长
    Java中四舍五入保留七位小数
    求三个整数的最小公倍数
    boxshadow 曲线阴影和翘边阴影
    <div> <p> <span>的用法和区别
  • 原文地址:https://www.cnblogs.com/Aralic/p/4397015.html
Copyright © 2011-2022 走看看