1、以构造数组的形式来构建数组,有以下几种方式
定义一个空的数组:var array1 = new Array();
定义一个长度为20的数组:var array2 = new Array(20);
定义数组是可以直接存入要保存的数据:var array3 = new Array(1,2,3);
定义数组时可以省略new关键字:var array4 = Array (1,2,3);
定义空数组还可以:var array5 = [];
定义一个保存了数据元素的数组:var array6 = [1,2,3];
小节:前四个和最后两个的区别就是后面的两个省略了new 和 Array(A必须大写),方法还比较简洁,但是还得注意括号,后面的是中括号,前面的是小括号。
2、把数组里面的元素提取出来
首先定义一个含有元素的数组:var array = [1,2,3];
想从这里面提取出来我们需要的元素,需要用到下标(就是给数组里面的元素进行编号,方便我们准确提取出来),需要注意的是下标是从0开始的,就我写的这个数组为例,它的下标有3个:0,1,2。
那么,array[0] = 1; array[1] = 2; array[2] = 3;
还需要引入一个新的概念,把超出数组下标范围的操作称之为数组操作的越界(beyond bounds)。就上个例子为例,它的下标只有三个,所以不可能有 array[3]这种情况的出现。
3、Math 的五个应用
求数组中的元素的最小值
var min = Math.min(1,3,5,2);
alert("min:" + min);
求数组中的元素的最大值
var max = Math.max(1,3,5,2);
alert("max" + max);
向上取整方法
var num = Math.ceil(1.8);
alert(num); 输出的结果是2。
向下取整方法
var num = Math.floor(1.8);
alert(num); 输出的结果是1。
四舍五入方法
var num = Math.round(1.8);
alert(num); 输出的结果是2。
做一个小小的练习题
练习一:随机出现10~20之间的1个数
var array = Math.floor(Math.random() * 11 + 10);
console.log(array); 在chrome中的检查部分的console中就可以看到我们想要的结果了。
公式:求任意范围的随机数的方法为:
[a,b]范围内的随机数的公式为:
Math.floor(Math.random() * ( b -a +1 ) + a );
再加一点难度:
练习二:随机出现10~20之间的10个数
var array = [];
for (var i = 0 ; i < 10 ; i++) {
array[i] = Math.floor(Math.random() * 11 + 10 )
}
console.log(array);
解题总结:我就经常容易在这出现错误,第一个就是首先你得在for的外面首先定义一个空的数组,如果定义在for循环里面的话会使得每次循环都是给array重新进行了赋值,输出的结果只有一个数据。第二就是需要给for循环里面的array加上[i],这就相当于给每次循环出现的数字都给了一个下标,方便提取,同时也是为了使每次出现的数据都能赋值到数组中,不然还是只给array进行不断的赋值,出现的还是一个数据。第三,console必须放在最外面,放在里面是把每次赋值的数据显现出来,放在外面能够使最后得到的数组显现出来。
练习三:对练习二得到的十个元素进行求和处理
var array = [];
var sum = 0 ;
for (var i = 0 ; i < 10 ; i++) {
array[i] = Math.floor(Math.random() * 11 + 10 )
sum += array[i];
}
console.log(sum);
这道题很简单,就是在第二道题的基础上加了一个sum元素
练习四:把一个数组内的元素全部复制到另一个数组内
var array = [1,2,3];
var arrayCopy = array;
console.log(arrayCopy);
给两个数组中间直接加上等号,可以使两个数组进行复制。
练习五:生成两个数组,每个数组都有10个元素,元素的取值范围在20~40之间,数组对应元素相加,放到另外一个新的数组中。
var array1 = [ ];
var array2 = [ ];
var array = [ ];
for ( var i = 0 ; i < 10 ; i++) {
array1[i] = Math.floor(Math.random() * 21 + 20 ) ;
array2 [i]= Math.floor(Math.random() * 21 + 20 ) ;
array[i] = array1[i] + array2[i] ;
}
console.log(array);