码迷,mamicode.com
首页 > 编程语言 > 详细

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

时间:2015-04-01 09:42:06      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:前端笔试   javascript   提取url参数   trim   正则表达式   

(1)拍扁数组

这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8]。维数不定,应该要用递归:

答案:

function flatten(arr){
var arrLength=arr.length;
for(var i=0;i<arrLength;i++){
    if(arr[i].constructor==Array){
        arr.splice(i,1,flatten(arr[i]));
    }
}
return arr;
}

(2)提取URL中的参数变成对象

这也是一个互联网公司的前端笔试题,凭记忆记录,
一个URL如”http://www.taobao.com/index.php?key0=0&key1=1&key2=2…..”提取参数,输出:
{
key0:0,
key1:1,
key2:2,

}

答案:

function parseQueryString(ustring){
    ustring=ustring.slice(ustring.indexOf("?")+1);
    var arr=ustring.split("&");
    var result=new Object();
    for(var i=0;i<arr.length;i++){
        var kv=arr[i];
        kvarray=kv.split("=");
        result[kvarray[0]]=kvarray[1];
    }
    return result
}

(3)使用js代码,实现去除前后string前后空格的trim()函数

行如“ abc”==》“abc” “abc “==>”abc”

答案:

    String.prototype.trim=function(){
       var result=this.replace(/^\s+|\s+$/g,"");
        return result;
    }

(4)实现一个函数,判断是否是正确的Email地址

这题就是考正则表达式的用法,Email地址如234324aabaf_adsf_dad123@qq.vip.com
所以写法应该是/^([a-zA-Z0-9_.-])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})$/

答案:

function checkEmailAddress(address){
    if(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/.test(address)){
        return true
    }else{
        return false
    }

}

(5)16进制颜色转成RGB格式:

要求:#0000ff==》rgb(0,0,255)

invalid=>invalid
#G00==>#G00

答案:

var parseColor = function( val ){ 

     var r, g, b; 

    // 参数为RGB模式时不做进制转换,直接截取字符串即可 

     if( /rgb/.test(val) ){ 

         var arr = val.match( /\d+/g ); 

         r = parseInt( arr[0] ); 

         g = parseInt( arr[1] ); 

         b = parseInt( arr[2] ); 

     } 
     // 参数为十六进制时需要做进制转换 

     else if( /#/.test(val) ){ 

         var len = val.length; 

         // 非简写模式 #0066cc 

         if( len === 7 ){ 

             r = parseInt( val.slice(1, 3), 16 ); 

             g = parseInt( val.slice(3, 5), 16 ); 

             b = parseInt( val.slice(5), 16 ); 

         } else if(len==4){
            return val;
         }

     } 

     else{ 

         return val; 

     } 

     return "rgb("+r+","+g+","+b+")";


 }; 

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

标签:前端笔试   javascript   提取url参数   trim   正则表达式   

原文地址:http://blog.csdn.net/ldldong/article/details/44786523

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!