第一部分、数组
1.创建数组
- 使用“[ ]”字面量来创建数组
- 使用“new Array()”创建数组
var arr1 = []; //创建一个空数组
var arr2 = [1,2,3,4]; //创建一个有数据的数组
var arr3 = new Array();
var arr4 = new Array(1,2,3,4);
2.数组的属性
数组的属性:length(数组的默认属性,表示数组的长度)
var arr3 = new Array();
var arr4 = new Array(1,2,3,4);
console.log(arr3.length); //结果为0
console.log(arr4.length); //结果为4
3.数组元素的访问
使用索引来访问数组中的元素,索引是一个数字,从0开始。
var arr = [1,2,3,4];
console.log(arr[0]); //结果为1
console.log(arr[1]); //结果为2
console.log(arr[2]); //结果为3
console.log(arr[3]); //结果为4
4.数组的遍历
数组遍历是将数组中的元素全部访问一遍,可以利用for循环来实现,在for循环中让索引从0开始自增。
如果数组元素比较多时,计算数组元素的个数不太方便,这时候可以利用“数组名.length”来快速地获取数组长度。
(1)一般遍历
var arr = [1,2,3,4];
for(var i=0;i<arr.length;i++){
console.log(i);
}
(2)for…in循环遍历
var arr = [1,2,3,4,5,6,7,8,9];
for(var k in arr){
console.log(k); //打印数组每个元素的索引值
console.log(arr[k]); //打印数组每个元素的值
}
例1:获取数组元素的最大值
var arr = [1,2,3,4];
var max = arr[0]; //先假定第一个数是最大值
for(var i=1;i< arr.length;i++){
if (arr[i]>max) {
max = arr[i];
}
}
console.log(arr);
console.log(max);
例2:反转数组中的元素
var arr = [1,2,3,4,5,6,7,8,9];
console.log(arr); //输出原数组
for(var i=0;i<parseInt(arr.length/2);i++){
var temp=arr[i];
arr[i] = arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
console.log(arr); //输出反转后的数组
第二部分、排序算法
1.冒泡排序
冒泡排序算法:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。
var a = [10,7,5,27,98,31];
console.log("排序前:",a);
for(var i=0;i<a.length;i++){ //外循环:控制比较的轮次
for(var j=0;j<a.length-i-1;j++){ //内循环:进行数据的比较,小数向前移动或者大数向后移动
if (a[j]>a[j+1]) {
var temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
console.log("排序后:",a);
2.插入排序
插入排序算法:通过构建有序数组元素的存储,对未排序的数组元素,在已排序的数组中从最后一个元素向第一个元素遍历,找到相应位置并插入。
var arr = [10,8,100,31,87,70,1,88];
for(var i=0;i< arr.length;i++){
for(var j=i;j>=0;j--){
if (arr[j]>arr[j+1]) {
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
第三部分、二维数组
1.二维数组的创建
- 使用“[ ]”字面量来创建数组
- 使用“new Array()”字面量来创建数组
var arr1 = [[1,2,3],[4,5,6],[7,8,9]]; //3行3列的二维数组
var arr2 = new Array(
new Array(1,2,3),
new Array(4,5,6),
new Array(7,8,9)
)
2.元素的访问
数组名[行下标][列下标]
3.二维数组转置
二维数组的转置指的是将二维数组横向元素保存为纵向元素。
var a = [
['a','b','c'],
['d','e','f'],
['g','h','i'],
['j','k','l']
]
var str = ''
for(var i=0;i<a.length;i++){
for(var j=0;j<a[i].length;j++){
str += a[i][j] + '\t';
}
str += '\n';
}
console.log("转置前:\n",str);
var res = []
for(var i=0;i<a[0].length;i++){
res[i] = []
for(var j=0;j<a.length;j++){
res[i][j] = a[j][i];
}
}
console.log("转置后:",res);