JS 练习一

编程是一门手艺活,光有理论是远远不够的,需要多多练习。

 

1 数组:写一个函数,实现功能 duplicate([1,2,3,4,5]);  // [1,2,3,4,5,1,2,3,4,5]

涉及知识点:

a 函数

b 数组

参考代码如下:

function duplicate(arr){
    var len = arr.length;
    for(var i = 0; i < len; i++){
        arr.push(arr[i]);
    }
    console.log(arr);
};

duplicate([1,2,3,4,5]);

 

2 数组:"a test pattern".split(" ").reverse().join(" ");

split(" ")会把字符串转换为数组,怎么分割数组中的各项呢?以空格来分割!

 

3 字符串:去除字符串中的空格

var str1 = "abc d  e ";
var str2 = "  12    3";
var str = str1 + str2;
document.write(str + "<br>");
//匹配任何空白字符,替换成"".
str = str.replace(/\s/g, "");
document.write(str + "<br>");

 

4 DOM:实现如下表单的二级联动

涉及知识点:

a DOM

b 事件

c 表单

html代码如下:

<form>
    <select id="province">
        <option>--请选择--</option>
        <option>湖南</option>
        <option>湖北</option>
    </select>
    <select id="city">
        <option>--请选择--</option>
    </select>
</form>

JS代码如下:

var select1 = document.forms[0][0];
var select2 = document.forms[0][1];

//对于select元素,在其选项改变时触发
select1.onchange = function () {
    //先清除已有的二级选择框中的项
    var len = select2.options.length - 1;
    for(var i = len; i > 0; i--){
        select2.remove(i);
    }

    //如果选择的是湖南,则添加湖南的城市到二级选择框中
    if(select1.selectedIndex == 1){
        select2.add(new Option("长沙", "changsha"), undefined);
        select2.add(new Option("湘潭", "xt"), undefined);
    };
    if(select1.selectedIndex == 2){
        select2.add(new Option("武汉", "wuhan"), undefined);
        select2.add(new Option("武昌", "wuchang"), undefined);
    };
}

注意:for循环不能升序写,因为options.length是动态变化的。

 

5 数组:求最大值

参考代码如下:

var score = [5, 7, 23, 40, 25];

var max = Math.max.apply(score, score);
console.log(max);

如果是二维数组呢?

参考代码如下:

var a = [1, 2, 3, [5, 26], [1, 4, 8] ];
var b = a.join(","); //用,号分割数组各项,然后连接成一个字符串。
var c = b.split(",");
var max = Math.max.apply(c, c);
console.log(max);

 

6 数组: 排序

数字排序

var arr = [1, 5, 10, 150, 15];
arr.sort(compare);
function compare(num1, num2) {
    return (num1 > num2 ? 1 : -1);
}
console.log(arr);

 字母排序

var arr = ['ef', 'cd', 'xy', 'hi', 'ab'];
arr.sort(compare);
function compare(str1, str2) {
    return str1.localeCompare(str2);
}
console.log(arr);

对象排序

将下面四个学生按照得分,从低到高进行排序。

// sorting
person.sort(compare);
function compare(obj1, obj2) {
    return obj1.score - obj2.score;
}

//after sort
person.forEach( function(item, index, array) {
    document.write(item.name + " " + item.score +"<br>");
});

 

posted on 2017-05-12 21:15  modDx  阅读(196)  评论(0编辑  收藏  举报

导航