目录
一. 概念
JavaScript中的数组(Array)与其他语言中的数组是有很大区别的,js中的数组可以存放任意的数据类型,数组的大小也是随着元素的增加动态增加的。
二. 创建数组的几种方式
1. 采用Array构造函数
// 基本用法
let color = new Array()
// 也可以直接指定数组的长度
let colors = new Array(20) // 指定了一个长度为20的数组
// 也可以直接指定数组的长度
let colors = new Array("red","yellow","white")
2. 采用数组字面量的方式创建数组
let arr = ['red','yellow','green']
// 调用方式
let result1 = arr[0]
let result2 = arr[1]
// 多种类型元素的数组
let arr = ['虎虎',18,false]
//访问数组
console.log(arr[0])
//数组长度
let arr = [1,2,3,4,5,7,8]
console.log(arr.length)
//手动设置数组长度,会删除超出长度的元素
arr.length = 4
//手动插入一条数据
arr[7] = 9
//替换数组元素
arr[0] = "hahha"
//特殊案例
arr[15] = "hahh" //数组会自动扩容 //插入一条超出长度的索引的值
console.log(arr[9]) //改索引值对应的只不存在 就会返回undefined
三. 遍历数组
let colors = ['red','green','yellow','white'];
//利用for循环遍历数组
for(let i = 0;i<colors.length;i++){
console.log("我最喜欢的颜色是:"+colors[i]);
}
// 拓展
// 遍历数组
let arr = ["小橘",20,"coder"];
for(let value of arr){
console.log(value);
}
案例一:求数组元素中的最大值?
let arr = [1,5,3,8,10,12];
let maxitem = arr[0]; //假设第一个是最大值;
for(let i = 0; i<arr.length; i++){
if(arr[i]>maxitem){
maxitem = arr[i];
}
}
console.log(maxitem);
案列二:数组筛选
//数组筛选
//错误的写法
let arr = [1,3,15,17,21,7,8,29,40];
let newArr = [];
//要求 筛选出>10的值 并且放到一个新数组里面;
for(let i = 0;i<arr.length;i++){
if(arr[i]>10){
newArr[i] = arr[i];
}
}
console.log(newArr);
//正确的写法
let arr = [1,3,15,17,21,7,8,29,40];
let newArr = [];
let j = 0;
//要求 筛选出>10的值 并且放到一个新数组里面;
for(let i = 0;i<arr.length;i++){
if(arr[i]>10){
newArr[j] = arr[i];
j++;
}
}
console.log(newArr);
//优雅的写法
//数组筛选
let arr = [1,3,15,17,21,7,8,29,40];
let newArr = [];
//要求 筛选出>10的值 并且放到一个新数组里面;
for(let i = 0;i<arr.length;i++){
if(arr[i]>10){
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
案例三:翻转数组
//数组反转
let arr = [1,2,3,4,5,6,7];
let newArr = [];
for(let i = arr.length-1;i>=0;i--){
newArr[newArr.length] = arr[i];
}
console.log(newArr);
难度升级: 冒泡排序
//冒泡排序
let arr = [5,4,3,2,1];
for(let i = 0;i<arr.length-1;i++){
for(let j = 0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
四.二维数组
//基本使用
let arr = [
[0,1,2],
['小白白','小黑黑'],
[0,1,2,3,4,5],
];
console.log(arr[1][1]);
//循环遍历二维数组
let arr = [
[0,1,2],
['小白白','小黑黑'],
[0,1,2,4,5,6]
];
for(let i = 0;i < arr.length; i++){
for(let j = 0;j < arr[i].length; j++){
console.log(arr[i][j]);
}
}