js第二课

一,常用对象

1.array

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //创建
        var a = [0, 1, 'Bugs', 'Bug'];
        var a = []; //空数组
        var a = [1, ['Bugs', 'Bug'], 2];//嵌套数组
        //函数创建
        var a = new Array(3);
        var a = new Array(1, 2, 'Bugs', 'Bug');
        var a = new Array(1, new Array('Bugs', 'Bug', 1), 2);
    </script>

长度(Length)长度可写。

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array('Bugs', 1);
        //添加元素
        a[a.length] = 'Bug';
    </script>

若:length所赋的值>length :会添加新的未定义的元素(undefined)到数组末尾,

                          <          :后再数组末尾删除一些元素。

2.数组的操作

  添加

       使用unshift():将新元素添加到数组头部。数组中的所有元素向后移一位。长度加1.

    或者push():与unshift()方法相反,将新的元素添加到数组末尾,数组中的所有元素位置不变,长度加1

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array('Bug', 1);
        //前添加元素
        a.unshift('Bugs');
        var a=new Array('Bugs');
        //后添加元素
        a.push('Bug');
    </script>

  删除

    使用shift():删除数组的第一个元素,数组中的其他元素向前移一位,长度减1,

    pop():删除数组中的最后一个元素,其他元素不变,长度减1,

        splice(arg1,[arg2]):arg1表示操作数组元素的index,arg2表示操作元素的个数,

              若:arg2省略,默认操作元素从数组的index到数组结束。(IE中,此方法不被执行)。

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array(1, 'Bugs', 'Bug');
        //在前删除元素
        a.shift();
        alert(a.length); //2
        var a = new Array('Bugs', 'Bug', 1);
        //在后删除元素
        a.pop();
        alert(a.length); //2
        var a = new Array('Bugs', 'Bug', 1, 2);
        a.splice(2, 2);
        alert(a.length); //2
        var a = new Array('Bugs', 'Bug', 1, 2);
        a.splice(2);
        alert(a.length);//4
    </script>

  替换

    splice()方法返回被删除的元素组成的数组,splice()除了两个参数外还有多参数的splice(arg1,arg2,arg3,....)

    这些元素:从arg3开始至之后的元素,会在删除操作完成后被当做数组的新元素从arg1的index开始依次插入进数组

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array('Bugs', 2, 1, 3, 'Bug');
        a.splice(1, 3, ' '); //a['Bugs',' ','Bug']
    </script>

  取得数组的片段

    slice(arg1,[arg2]):参数arg1指从开始的数组index,到arg2结束的(index-1) 元素,

              参数可以是负数slice(-arg1,[-arg2])从数组后面开始数而已

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array(2, 'Bugs', 'Bug', 1, 3);
        a.slice(1, 3); //a['Bugs','Bug']
        a.slice(-2, -4); //a['Bugs','Bug']
    </script>

  翻转数组

    reverse()方法。

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = new Array('Bug', 'Bugs');
        a.reverse();  //a['Bugs','Bug']

   将数组转换成字符串

    使用join([arg1])方法可以将数组的所有元素使用指定的字符(arg1)连接成一个新的字符串,若没有arg1默认为”“连接. 

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = ['Bugs', 'Bug'];
        a.join(' ');  //'Bugs Bug'
        alert(a);
</script> //IE10下含参方法未被正确执行

  元素排序

    使用sort([arg1]).当sort()方法不含参数时,排序时会将元素转换成字符串,并按照首个字符的ASCⅡ从小到大排列,若含有未定义的元素,会被放到数组的末尾

    若需要将数组按照一定规则排序可以传进来一个比较函数(arg1),在排序时,会从数组中每次抽取两个元素传给函数,函数会根据返回值决定两个元素的位置(类似冒泡排序):1.返回值>0 第一个元素排在第二个元素的后面,2.返回值<0 第一个元素排在第二个元素的前面,3.返回值=0 元素位置不变

    <script type="text/javascript" src="JS/JScript.js"></script>
    <script type="text/javascript">
        //长度Length
        var a = [2, 3, 'Bugs', 1, 'Bug'];
        //a.sort();   //'1,2,3,Bug,Bugs'
        a.sort(function (x, y) {
             return x - y; //2,3,Bugs,1,Bug
            //return y - x; // 3,2,Bugs,1,Bug
            //return 0; //2,3,Bugs,1,Bug
        });
        alert(a);//
    </script>

原文地址:https://www.cnblogs.com/wjshan0808/p/3034035.html