首页 > 代码库 > js03 数组

js03 数组

变量的自动转换
=== 等同符:不会发生类型的自动转化!
== 等值符:会发生类型自动转化、自动匹配!
判断相等没有equals()方法,只有2个等号3个等号。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8>
/**
js数组更加类似java的容器。长度可变,元素类型也可以不同!
数组长度随时可变!随时可以修改!(length属性)
push、pop
shift、unshift
splice、slice(不改变数组)
concat(不改变数组)、join(不改变数组)、sort、reverse等
 */
        var arr = new Array();//这里可以写长度也可以不写长度
        var arr = [1,2,3,4,true ,abc , new Date()] ;
        alert(arr.length);
        arr.length = 5 ;//截断
        alert(arr.toString()); //1,2,3,4,true
        
        /**
         *  push 和 pop 方法
         */
        var arr = [new Date(),false] ;
        var result = arr.push(1,2,true);    //可以一次推多个值,push方法向数组中追加元素(返回值为新数组的长度)
        alert(arr);
        alert(result);
        var obj = arr.pop();        //从数组的尾部删除一个元素(返回值为删除的元素)
        alert(arr);
        alert(obj);
        
        /**
         * shift 和 unshift 方法
         */
        var  arr = [1,2,3, true , new Date()];
        var r1 = arr.shift();            //从头部移除一个元素(返回移除的元素)
        alert(arr);
        alert(r1);
        var r2 = arr.unshift(10,false);    //从头部插入多个元素(返回新数组的长度)
        alert(arr);
        alert(r2);
        
        /**
         * splice、slice 方法 (截取的方法)
         * splice方法改变数组
         * slice方法不改变数组
         */
        // splice(subString()): 第一个参数 :起始位置,包头,起始位置坐标是0,
        //            第二个参数 :表示截取的个数
        //             第三个参数以后:表示追加的新元素个数
        var arr = [1,2,3,4,5];
        arr.splice(1,2,3,4,5);    //从下标1开始删除2个并加入345, 134545
        alert(arr);
        arr.splice(1,2);//1545
        arr.splice(1);//1,从1位置开始截,后面全部截取掉
        
        // slice: 
        var arr = [1,2,3,4,5];
        var reuslt = arr.slice(2,4);//下标从0开始   
        alert(reuslt);        //返回截取的内容,包头不包尾,3,4     
        alert(arr);//1.2.3.4.5,数组还是没变
        
        //操作数组的方法: concat join
        var arr1 = [1,2,3];
        var arr2 = [true , 4 , 5];
        var reuslt = arr1.concat(arr2);
        alert(reuslt);//1,2,3,true , 4 , 5
        alert(arr1);//1,2,3
        alert(arr2);//true , 4 , 5
        
        var result = arr1.join(-);        //在每个元素之间加入内容(不操作数组本身)
        alert(arr1); //1,2,3
        alert(result);//1-2-3
        
        /**
         * sort排序 
         * reverse倒叙
         */
        var arr1 = [5,2,1,4,3];
        var arr2 = [10,2,4,1,7];
        arr1.sort();
        alert(arr1);//1,2,3,4,5
        arr1.reverse();//倒叙放置,不是排序
        alert(arr1);//34125
        arr2.sort();
        alert(arr2);//字符串比较,1 10 2 4 7,所以要写自定义比较函数,
        
        function compare(value1 , value2){
            if(value1 < value2){
                return -1 ;
            } else if(value1 > value2){
                return 1 ; //返回正数交换value1、value2位置
            } else {
                return 0 ;
            }
        }
        arr2.sort(compare);
        alert(arr2);//124710
        </script>
    </head>
    <body>
    </body>
</html>

 

js03 数组