1.定义数组
数组: 可以存储任意数据类型,元素之间使用英文逗号隔开
1)使用new关键字定义数组
var 变量名 = new Array() ;定义空数组
var 变量名 = new Array(数据1,数据2) ;?定义有元素的数组
注意: 如果Array() 小括号中只有一个整数 —— 指的是数组的长度,没有赋值的元素是undefined
2)使用字面量定义数组
var 变量名 = [];定义空数组
var 变量名 = [数据1,数据2];?定义有元素的数组
2.数组下标操作元素
获取元素:使用下标(索引)来获取元素 数组名[下标] 如果下标超出:值是undefined
下标从0开始的 从左到右 不能为负数
添加数据 数组名[下标] = 值 空出来的位置:undefined
修改数据 数组名[下标] = 值
删除数据 delete 数组名[下标] 清空值,位置保留 变成undefined
3.获取数组的长度、添加元素
元素的个数——数组的长度 数组名.length
数组最后一个下标 = 数组的长度-1
在数组后边添加元素: 数组[数组.length] = 值
4.循环遍历数组
循环遍历数组,获取每一个元素
for(var i=0;i<数组的长度;i++){
? ? ? ? ? ? ? // 操作
}
5.添加元素、删除元素
数组添加元素:
1、数组[数组.length] = 值? ?在数组后边添加元素
2、数组名.push(值)? 在数组后边添加元素
3、数组名.unshift(值)? 在数组的前边添加
数组删除元素:
1、delete 数组名[下标] :删除值保留位置
2、数组名.pop()? ?删除数组的最后一个元素,不保留位置
3、数组名.shift()? ?删除数组的第一个元素,不保留位置
6.计算数组中数字的和、求平均值
var arr?= [80,85,60,90];
// 计算平均分 = 总和/个数
var sum = 0;
// 循环遍历数组---获取到每一个元素-----求和
for(var i=0;i<arr.length;i++){
? ? ? ? sum += arr[i]; // 加的是数组的当前元素 不是下标i
}
console.log(`数组的和是${sum}`);
console.log(`数组的平均数是${sum/arr.length}`); // 数组中元素的个数就是数组的长度
7.求数组中元素的最大值
最大值:
循环遍历数组-----获取到每一个元素
假设第一个元素就是最大的,存储在max中 max的作用就是存储最大值
元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max
var arr = [80, 85, 60, 90, 70];
// 定义变量max作为最大值 假设第一个元素的值就是最大的
var max = arr[0];
// 循环遍历数组
for(var i=0;i<arr.length;i++){
? ? // 元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max
? ? if( arr[i] > max ){
? ? ? ? ?max = arr[i];
? ? }
}
// 循环结束后输出最大值
console.log(max);
8.筛选数组
筛选数组:在循环遍历数组的时候加上if判断
// 数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 将大于10的元素 添加到新数组中 输出新数组
var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr2 = []; // 定义空数组
// 循环遍历数组arr1 对元素进行判断筛选
for(var i=0;i<arr1.length;i++){
? ? // 如果arr1中当前元素大于10 将当前元素存储在arr2中
? ? if( arr1[i] > 10 ){
? ? ? ? arr2.push(arr1[i]);
? ? }
}
console.log(arr2);
9.冒泡排序
冒泡排序: 每轮能将一个元素排在指定的位置,每轮中都是从第一个元素开始与相邻元素进行比较
以从小到大为例
外层表示轮数 ---- 每轮可以将一个元素放到指定位置 5个元素就4轮即可 元素的个数减一
内层表示比较次数 (充当下标) ----- 轮数i + 次数j = 元素的个数 j = 元素的个数-i
如果 当前元素 大于后边的 需要交换位置(借助第三方变量)
var arr = [2, 4, 5, 3, 1];
for(var i=0;i<arr.length-1;i++){ // 外层表示轮数 小于 元素的个数减一
? ?for(var j=0; j<arr.length-i; j++){ // 内层表示比较次数 (充当下标) 小于 元素的个数-i
? ? ? ? // 当前元素 大于后边的 需要交换位置
? ? ? ? if(arr[j] > arr[j+1]){
? ? ? ? ? ? ? ?var temp;? ?// 借助第三方变量 交换位置
? ? ? ? ? ? ? ?temp = arr[j];
? ? ? ? ? ? ? ?arr[j] = arr[j+1];
? ? ? ? ? ? ? ?arr[j+1] = temp;
? ? ? ? ?}
? ? ?}
}
console.log(arr);