首页 > 代码库 > 编程题总结(二)

编程题总结(二)

1、一个数组 par 中存放有多个人员的信息,每个人员的信息由年龄 age 和姓名 name 组成,如{age: 2, name: ‘xx‘}。请写一段 JS 程序,对这个数组按年龄从小到大进行排序。

function sortAge(arr){
     return arr.sort(function(arr1,arr2){
         return arr1.age-arr2.age;
     })

}

return a-b:倒序

return b-a:升序

2、有字符串 var = ‘abc345efgabcab‘,请写出 3 条 JS 语句分别实现如下 3 个功能:

1)去掉字符串中的a、b、c 字符,形成结果:‘345efg‘    str.replace(/[abc]/g,‘‘)
2)将字符串中的数字用中括号括起来,形成结果:‘abc3[5]efgabcab‘  str.replace(/(\d)+/g, ‘[$1]‘);
3)将字符串中的每个数字的值分别乘以 2,形成结果:‘abc6810efgabcab‘ str.replace(/(\d)/g, function(num) {return num*2;});

3、请写出下面 JS 程序中几个 alert 的结果:

var a = 100;
function fn() {
    alert(a);
    var a = 200;
    alert(a);
}
fn(); undefined 200
alert(a);100
var a;
alert(a);100
var a = 300;
alert(a);300

4、请问以前 JS 程序有什么问题?应该如何优化?

function setStyle(element) {
    element.style.fontWeight = "bold";
    element.style.textDecoration = "none";
    element.style.color = "#000000";
}

优化后:

function setStyle(element) {
    if (!element.style) {
        return;
    }
    var eleStyle = element.style;
    eleStyle.fontWeight = "bold";
    eleStyle.textDecoration = "none";
    eleStyle.color = "#000000";
}

5、请写出一下正则表达式:

1)匹配一个全部是数字的字符串 

var pat=/^\d+$/;
//开头到结尾都是数字的字符
var str=‘2345‘;
str.match(pat)
//["2345"]

2)提取一个 url 所使用的协议类型如 http、ftp 和 host 名称

var str = ‘http://yangbai.me‘;
var pat=/(\w+):\/\/([\w.]+)/;
var result=str.match(pat);
//["http://yangbai.me", "http", "yangbai.me"]
var http=result[1];
var host=result[2];

6、请使用闭包的方式,写一段 JS 程序实现如下功能:函数每调用一次则该函数的返回值加 1。

function fn(){
    var n=0;
    function fn1(){
        n++;
        console.log(n);
    }
    return fn1;
}

var foo=fn();
foo();  //1
foo();  //2
foo();  //3

7、有这样一个 URL:http://vip.qq.com/a.php?a=1&b=2&c=&d=xxx&e,请写一段 JS 程序提取 URL 中的各个参数(参数名和参数个数不确定),将其按 key-value 形式返回到一个 json 结构中,如{a:‘1‘,b:‘2‘,c:‘‘,d:‘xxx‘,e:undefined}。

function UrltoJson(url){
    var arr=url.split(‘?‘)[1].split(‘&‘);
    var result={};
    arr.forEach(function(e){
        var aEle=e.split(‘=‘);
        result[aEle[0]]= aEle[1]? aEle[1]:undefined;
//判断是否存在
    })
    return result;
}

 

编程题总结(二)