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

来源:互联网 发布:淘宝详情页关联宝贝 编辑:程序博客网 时间:2024/06/05 09:45

(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+")"; }; 

(6)编写一个随机出现任意两个数之间的整数的一个函数

要求:比如随机出现1到10之间的整数

解决办法:值=Math.floor(Math.random()*10+1);

function selectFrom(lowerValue,upperValue){    var choice=upperValue-lowerValue;    return Math.floor(Maht.random()*choice+lowerValue);}
0 0
原创粉丝点击