JavaScript-数组的浅析(1)

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);

你可能感兴趣的:(JavaScript-数组的浅析(1))