数组及排序(冒泡、选择、快速排序)

01.数组基础

1.数组

使用单独的变量名来存储一系列的值

简单的说,数组的作用,就是一个容器,将多个数据保存起来

2.声明数组的方法

  1. 字面量 :

    var arr = [];
    eg:
    var arr = ["兔子1","兔子2","兔子3","兔子4"];
    console.log(arr);
  2. 构造函数方法:

    var arr = new Array();
    如果参数为一个数值:代表的是数组中的长度
       如果为多个值,则是数组内容
    eg:
    var arr = new Array(1,2,3,4);
    console.log(arr);

3.数组的取值

  1. 利用数组的下角标 eg:arr[0] arr[1];

  2. 数组里面的下标都是连续的

eg:
//取值
var arr = ["兔子1","兔子2","兔子3","兔子4"];
console.log(arr[0]);

//获取数组长度
console.log(arr.length);

//重新赋值
var arr = [1,2,3,4,5,6];
arr[3] = 10;
console.log(arr);

02.数组的遍历

1.遍历数组

根据数组的下标,从开始往后扫描,直到结束

2.遍历方法

(1) for 循环

(2) for in 循环 for in 常用来遍历对象

eg:
var arr = [1,2,3,4,5,6];
//for循环
for(i = 0 ; i < arr.length ; i++){
   console.log(arr[i]);
}

//for in循环
for(i in arr){
   console.log(arr[i]);
}
练习:
0、求data数组中所有数字的和
var arr = [1,2,3,4,5];
function arrSum(arr){   //arr形参
   var sum = 0;
   for(var i = 0 ; i < arr.length ; i++){
       sum += arr[i];
  }
   return sum;
}
console.log(arrSum(arr));    //arr实参

1、求平均成绩。

var arr = [1,2,3,4,5];
function fn(arr){
   var sum = 0;
   for (var i = 0 ; i < arr.length ; i++){
       sum += arr[i];
  }
   return sum / arr.length;
}
console.log(fn(arr));

2、把1 - 100 放在数组data中;

var arr = [];
for(var i = 0 ; i < 100 ; i++){
   arr[i] = i + 1;
}
console.log(arr);

3:随机点名程序Math.random()

var arr = ["disf","dfg","fdre","fh","gh"];
var randomIndex = parseInt(Math.random() * arr.length);   //下标
console.log(arr[randomIndex]);  

4. 编写函数map(arr) 把数组中的每一位数字都增加30%

   var arr = [1,2,3,4,5];
function map(arr){
   for(i = 0 ; i < arr.length ; i++){
       arr[i] *= 1.3;
  }
   return arr
}
console.log(map(arr));

5. 编写函数has(arr) 判断数组中是否存在60这个元素,返回布尔类型

方法一:
function has(arr,k){
   for(var i =