数组:
数组对象用来在单独的变量名中存储一系列的值。
我们使用关键词 new 来创建数组对象。下面的代码定义了一个名为 myArray 的数组对象:
var myArray=new Array();
有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。
第一种方法:
var mycars=new Array();
mycars[0]="Saab";
mycars[1]="Volvo";
mycars[2]="BMW";
第二种方法:
var mycars=new Array("Saab","Volvo","BMW");
注意:如果你需要在数组内指定数值或者逻辑值,那么变量类型应该是数值变量或者布尔变量,而不是字符变量。
访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
document.write(mycars[0]);
修改已有数组中的值
如需修改已有数组中的值,只要向指定下标号添加一个新值即可:
mycars[0]="Opel";
数组的属性:
length:获得数组的长度
var len = arr.length
如果保存到变量里面,这个时候变量里面保存的是数字,如果说直接把arr.length写到循环里面,循环的时候会在去arr.length找长度(个数)
格式:var arr=[10,20,30];
数据:[10,20,30]
下标:[0,1,2]
数据 | 10 | 20 | 30 |
---|---|---|---|
下标 | 0 | 1 | 2 |
案例求学生成绩之和:
<!DOCTYPE>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
var arr=[96,98,88,92,45,48,56,96,87,55,62,22];
var len = arr.length;
alert(len);
var sum=0;
for(var i=0;i<len;i++){
sum = sum+arr[i];[/i]
}
[i]document.write("学生总成绩为:"+sum);[/i]
</script>
</head>
<body>
</body>
</html>
效果:
案例:求学生平均成绩
<!DOCTYPE>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
var arr=[96,98,88,92,45,48,56,96,87,55,62,22];
var len = arr.length;
var sum=0;
for(var i=0;i<len;i++){
sum = sum+arr;
}
var avg = sum/len;
document.write("学生平均成绩为:"+avg);
</script>
</head>
<body>
</body>
</html>
效果:
案例:数组排序(从小到大)->冒泡排序法:
<!DOCTYPE>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
function bubbleSort(array){
for(var j=0;j<array.length;j++){
for(var i=0;i<=array.length-j-1;i++){
if(array>array[i+1]){
var temp = array;
array.splice(i,1,array[i+1]);
array.splice(i+1,1,temp);
}
}
}
return array;
}
document.write(bubbleSort([21,5,6,78,3,1,25]));
</script>
</head>
<body>
</body>
</html>
效果:
二维数组
二维数组内部数据为数组,如下Arr二维数组
var arr1 = [23,12,56];
var arr2 = [45,12,33];
var arr3 = [34,44,55];
var arr=[arr1,arr2,arr3];
Arr = [
[23,12,56],
[45,12,33],
[34,44,55],
];
案例:求二维数组的最大值
<!DOCTYPE>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
var arr = [
[23,12,56],
[45,12,33],
[34,44,55],
];
var max = arr[0][0];
var xiabiao1 = 0;
var xiabiao2 = 0;
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length;j++){
if(max<arr[j]){
max = arr[j];
xiabiao1=i;
xiabiao2=j;
}
}
}
document.write("最大值为:"+max+",下标为:"+xiabiao1+","+xiabiao2);
</script>
</head>
<body>
</body>
</html>
效果:
数组方法:
arr.concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
连接数组和字符串:
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
输出:
1,2,3,4,5
连接两个数组:
<script type="text/javascript">
var arr = new Array(3);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
var arr2 = new Array(3);
arr2[0] = "James";
arr2[1] = "Adrew";
arr2[2] = "Martin";
document.write(arr.concat(arr2));
</script>
输出:
George,John,Thomas,James,Adrew,Martin
arr.join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
</script>
输出:
George,John,Thomas
arr.pop() 方法用于删除并返回数组的最后一个元素
<script type="text/javascript">
var arr = new Array(3);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
document.write(arr);
document.write("<br />");
document.write(arr.pop());
document.write("<br />");
document.write(arr);
</script>
输出:
George,John,Thomas
Thomas
George,John
arr.reverse()用于颠倒数组中元素的顺序
<script type="text/javascript">
var arr = new Array(3);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
document.write(arr + "<br />");
document.write(arr.reverse());
</script>
输出:
George,John,Thomas
Thomas,John,George
识别方法和属性:
属性:对象.属性名;
方法:对象.方法名();
Math 对象:
Math.pow(n1,n2):求n1的n2次方
<script type="text/javascript">
document.write(Math.pow(0,0) + "<br />");
document.write(Math.pow(-2,3) + "<br />");
document.write(Math.pow(-2,4) + "<br />");
</script>
结果:
1
-8
16
Math.abs(n):可返回数的绝对值
<script type="text/javascript">
document.write(Math.abs(7.25) + "<br />")
document.write(Math.abs(-7.25) + "<br />")
document.write(Math.abs(7.25-10))
</script>
输出:
7.25
7.25
2.75
Math.random():可返回介于 0 ~ 1 之间的一个随机数
Math.floor(n):向下取整,不大于n的最大的整数
Math.ceil(n):向上取整,不小于n的最小的整数