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] + " "); } document.writeln("<br/>"); } </script>
现在的几乎什么都不懂,但是不代表以后的我也是这样。