阿里在線前端筆試題

本人大三,非985,211。javascript

參加了2015年暑假實習校園招聘,好吧,其實就看看題目長什麼樣字、廢話很少說,上題。css

一共13題,6個選擇,1題是github地址或博客微博地址,6個大題。html

選擇題第一題:前端

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

考察數組splice的用法。java

後面幾個選擇題忘了(別打臉),選擇題都不是很難。git

 

大題:github

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

當時在作試卷的時候 沒有考慮多維數組,只片面的爲了解題,沒有用遞歸。markdown

更優作法:感謝 @ 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更友好一點,排版也舒服一些。

雖然是作前端的,可是對本身博客的不知道爲何不想本身設計自定義樣式。

相關文章
相關標籤/搜索