一.数组的概念

数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。


二.数组的创建方式

1.利用new创建数组

  1. // new创建数组
  2. var arr = new Array();

2.利用数组字面量创建数组(常用)

  1. // 数组字面量
  2. var arr= [1,2,'hello',true];

三.数组的索引

索引(下标):用来访问数组元素的序号,数组下标从0开始。

  1. // 获取数组内某个元素
  2. var arr= [1,2,'hello',true];
  3. alert(arr[0]);

四.遍历数组

所谓遍历数组就是把数组的元素从头到尾访问一遍

  1. // 遍历数组
  2. var arr = ['red','green','blue'];
  3. for(var i=0; i<3; i++){
  4. console.log(arr[i]);
  5. }

五.数组长度

使用“数组名.length”可以访问数组元素的数量,即数组的长度。

  1. // 数组的长度
  2. var arr = ['关羽','张飞','马超','赵云','黄忠','刘备','姜维'];
  3. for(var i=0; i<arr.length; i++){
  4. console.log(arr[i]);
  5. }
  6. console.log(arr.length);

六.新增数组元素

1.可以通过修改length长度来实现数组扩容目的

  1. // 新增数组元素
  2. var arr = ['red','green','blue'];
  3. arr.length = 5;//修改数组长度为5
  4. console.log(str);

2.通过修改数组索引新增数组元素

  1. var arr = ['red','green','blue'];
  2. arr[3] = 'pink';//追加数组元素
  3. console.log(arr);

PS:不要直接给数组名赋值,否则会覆盖掉以前的数据

七.数组冒泡排序

冒泡排序是一种算法,它重复地走访过要排序的数列,一次比较两个元素,如果顺序错误就把它们交换过来。走访数列的工作是重复地进行,直到没有再需要交换,也就是说该数列已经排序完成。
简而言之,就是把一系列数据按照一定的顺序进行排列显示(从小到大或者从大到小)。
例如:可以将数组[5,4,3,2,1]中的元素按照从小到大的顺序输出为1,2,3,4,5

  1. // 数组冒泡排序
  2. var arr = [5,4,3,2,1];
  3. for(var i=0; i<arr.length-1; i++){
  4. for(var j=0; j<arr.length-i-1; j++){
  5. if(arr[j]>arr[j+1]){
  6. var temp = arr[j];
  7. arr[j] = arr[j+1];
  8. arr[j+1] = temp;
  9. }
  10. }
  11. }
  12. console.log(arr);


八.数组综合案例

  1. // 求数组[2,6,1,7,4]里面所有元素的和及平均值
  2. var sum = 0;
  3. var average =0;
  4. var arr = [2,6,1,7,4];
  5. for(var i=0; i<arr.length; i++){
  6. sum += arr[i];
  7. }
  8. average = sum/arr.length;
  9. console.log(sum,average);
  1. // 求数组中的最大值
  2. var arr = [2,6,1,77,52,25,7];
  3. var max = arr[0];
  4. for(var i=1; i<arr.length; i++){
  5. if(arr[i]>max){
  6. max = arr[i];
  7. }
  8. }
  9. console.log(max);
  1. //将数组转化为字符串
  2. var arr = ['red','blue','green','pink'];
  3. var str = '';
  4. for(var i=0; i<arr.length; i++){
  5. str += arr[i]+'|';
  6. }
  7. console.log(str);
  1. // 向数组存放1-10的数值
  2. var arr = [];
  3. for(var i=0; i<10; i++){
  4. arr[i] = i+1;
  5. }
  6. console.log(arr);
  1. // 筛选下面数组中大于等于10的元素,并放入一个新数组
  2. //第一种方法
  3. var arr = [2,0,6,1,77,0,52,0,25,7];
  4. var newArr = [];
  5. var j = 0;
  6. for(var i=0; i<arr.length; i++){
  7. if(arr[i]>=10){
  8. newArr[j] = arr[i];
  9. j++;
  10. }
  11. }
  12. console.log(newArr);
  13. //第二种方法
  14. var arr = [2,0,6,1,77,0,52,0,25,7];
  15. var newArr = [];
  16. for(var i=0; i<arr.length; i++){
  17. if(arr[i]>=10){
  18. newArr[newArr.length] = arr[i];
  19. }
  20. }
  21. console.log(newArr);
  1. // 翻转数组
  2. var arr = ['red','green','blue','pink','purple'];
  3. var newArr = [];
  4. for(var i= arr.length-1; i>=0; i--){
  5. newArr[newArr.length] = arr[i];
  6. }
  7. console.log(newArr);