数组的概念
数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的方式。
//普通变量一次只能存储一个值
var num = 10;
//数组一次可以存储多个值
var arr = [1,2,3,4,5];
数组的创建方式
js中创建数组有俩种方式:
● 利用new创建数组
● 利用数组字面量创建数组
利用new创建数组
var 数组名 = new Array();
var arr = new Array(); //创建一个新的空数组
注意:Array,A要大写
利用数组字面量创建数组(使用最多的方式)
//1、使用数组字面量方式创建空的数组
var 数组名 = [];
//2、使用数组字面量方式创建带初始值的数组,数组里面的数据,称为数组元素
var 数组名 = ['小白','小黑',‘大黄’,‘瑞奇’];
注意:数组里面的数据一定要用逗号分隔。
数组元素的类型
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等
var arrStus = ['小白',12,true,28.9]
获取数组元素
1、数组的索引
获取数组元素,格式 数组名[索引号],索引号从0开始
var arr = [1,2,'pink老师',true];
console.log(arr[2]);
遍历数组
遍历:把数组中的每个元素从头到尾都访问一次。
//遍历数组:就是把数组的元素从头到尾访问一次
var arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
for (var i = 0; i < 7; i++) {
console.log(arr[i]);
}
//因为数组索引号从0开始,所以i必须从0开始,由此i=0、i < 3,不能是i<=3;
//输出的时候arr[i] i计数器当索引号来用
数组的长度
使用“数组名.length”可以访问数组元素的数量(数组长度)。
var arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
注意:
● 数组的长度是元素个数 不要跟索引号混淆
● arr.length动态监测数组元素的个数
数组中新增元素
1、可以通过修改length长度以及索引号增加数组元素,length元素是可读写的
2、可以通过修改数组索引的方式追加数组元素
<script>
//1、新增数组元素 修改length长度
var arr = ['red', 'grenn', 'blue']
console.log(arr.length);
arr.length = 5;
console.log(arr);
console.log(arr[3]); //undefined
console.log(arr[4]); //undefined
//2、新增数组元素 修改索引号 追加数组元素
var arr1 = ['red', 'green', 'blue']
arr1[3] = 'pink';
console.log(arr1[3]); //pink
arr1[0] = 'yellow'; //这里是替换元素 会将red替换为yellow
console.log(arr1);
</script>
注意:不能直接给数组名赋值,否则会覆盖掉以前的数据
小案例:
1、新建一个数组,里面存放10个整数(1~10)
var arr2 = [];
for (var i = 0; i < 10; i++) {
arr2[i] = i + 1;
}
console.log(arr2);
2、将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组
<script>
//方案一
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
var j = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] > 10) {
newArr[j] = arr[i];
j++;
}
}
console.log(newArr);
</script>
<script>
//方案二
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > 10) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>
3、将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉后,形成一个不包含0的新数组
<script>
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>
4、数组翻转
<script>
var arr = [1, 2, 3, 4, 5, 6];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
console.log(newArr);
</script>
执行思路:
● 声明一个新数组newArr;
● 取旧数组最后一个索引号,由于索引号是由0开始的,因此最后一个索引号为(arr.length - 1),给新数组索引号第0个元素(newArr.length)
● 采取递减方式 i–
6、交换变量
<script>
var num1 = 10;
var num2 = 20;
var temp;
temp = num1;
num1 = num2;
num2 = temp;
console.log(num1, num2);
</script>
7、数组排序(冒泡排序)
冒泡排序:是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)
核心原理:重复走访要排序的数列,一次比较俩个元素,如果顺序错误则交换过来。
<script>
//冒泡排序
var arr = [5, 6, 7, 4, 2, 3, 1, 8, 9];
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
</script>
8、去重
<script>
var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6];
var newArr = [];
for (var i = 0; i <= arr.length; i++) {
if (arr[i] != arr[i + 1]) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>