js中的数组

数组(引用类型,有的人又称作为复杂/复合类型)
    数组的概念:用于存放一组数据的集合
    案例:求几只鸡的平均重量
        <script language="javascript" type="text/javascript">
            var weights=[10,12,10,12.3,4.5];
            var all_weight=0;
            var average_weight=0;
            //数组的遍历
            for(var i=0;i<weights.length;i++){
                all_weight+=weights[i];
                document.writeln(weights[i]);
            }
            document.write("平均的重量是:" + (all_weight / weights.length).toFixed(1));
            //toFixed方法是可以将Number四舍五入成制定的小数位。具体的见http://www.w3school.com.cn/jsref/jsref_tofixed.asp
            </script>
        注意:1)在js中的数组是由一对[]包围的,不是花括号{}。
              2)在js中的数组中并不区分类型,可以存放任何数组类型(例如可以同时放数值,字符串等等);
    基本用法:
  var 数组名=[元素值](元素可以是任意的类型)
        ******案例:
            var a=10;
            function test(b){
                b=3;
                
            }
            test(a);
            window.alert(a);//10
            这里的值没有改变的原因是调用test函数时,会开辟一个新的栈,将a的值赋给b,改变的是这个栈中b的值,
            a的值没有发生改变。
        
        
        js的数组可以动态增长(类似于java中的集合),例如:
            var a=[2,3];
            a[2]=3;
            window.alert(a.length);//3
        
        String中的spilt()方法将字符串分割成字符串数组:
            var str="js is fun!";
        var array=str.split(" ");
        for(var i=0;i<array.length;i++){
            document.writeln(array[i] + "<br/>");
            /*
                js
                is 
                fun!
            如果改成split("");则会不一样
            */
        }
        window.alert(array.length);    //3
        注意:在括号后可以加数组,对返回的数组的长度进行限定,例如
            split(" ",2);则上边返回的是[js,is];
        在js中存在另外的一种遍历数组的方式:for(var key in array){}
        <script language="javascript" type="text/javascript">
            var str="ni shi yige sha bi a";
            var array=str.split(" ");
            for(var i=0;i<array.length;i++){
                document.writeln(array[i] + "<br/>");
            }
            str["gg"]=12;
            for(var key in array){
                document.write( "下标:" + key + "   值:" + array[key]   + "<br/>");
            }
        window.alert(array.length);
        </script>
        同时这个案例也是说明了js中的数组的下边不一定是数值,也可以是字符串。(一般的按照数组排列)
        
二维数组:
    *****案例:将一个矩阵进行转置***
        script language="javascript" type="text/javascript">
            var array1=[[1,2,3,4],[5,3,2,4],[7,8,9,0]];
            var array2=[];//定义一个新的数组
            for(var i=0;i<array1[0].length;i++){
                array2[i]=[];//对这个数组进行初始化,定义有多少行
            }
            //遍历原来的矩阵,并对新的数组进行赋值
            for(var i=0;i<array1.length;i++){
                for(var j=0;j<array1[0].length;j++){
                    array2[j][i]=array1[i][j];
                }
            }
            //成功!遍历这个新的数组,同时进行打印
            for(var i=0;i<array2.length;i++){
                for(var j=0;j<array2[0].length;j++){
                    document.write(array2[i][j] + "&nbsp");
                }
            document.writeln("<br/>");
            }
        </script>
    

 

 


posted @ 2016-03-02 13:04  戒。  阅读(82)  评论(0编辑  收藏  举报