一.数组
<script>
// 创建数组
// 1.直接量创建数组
var arr = [1, "abc", 3, true, 5];
console.log(arr);
// 2.构造函数 Array() 创建数组
// var arr2 = new Array(1, 2, 3, 4, 5);
// console.log(arr2);
// var arr3 = new Array(5);
// console.log(arr3);
// var arr4 = [1, , 3, , 5];
// console.log(arr4);
// var arr5 = new Array(1,, 2,, 4)
// 访问数组元素
console.log(arr[0]);
// 修改数组元素
arr[1] = "ABC";
console.log(arr);
// 删除数组元素,删除之后该位置任然存在,值为 empty
delete arr[2];
console.log(arr);
// 数组的长度
console.log(arr.length);
// arr.length = 2;
// console.log(arr);
arr.length = 10;
console.log(arr);
</script>
二.遍历数组
<script>
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
</script>
三.二维数组
<script>
// 二维数组
var arr = [[1, 2, 3], [4, 5], [6, 7, 8, 9]];
console.log(arr.length);
console.log(arr[0][0]);
// 遍历二维数组
for (var i = 0; i < arr.length; i++) {
// console.log(arr[i]);
for (var j = 0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}
</script>
四.数组的排序
<script>
var arr = [3, 21, 45, 6, 91, 12, 41];
// 求数组中的最大值和最小值
var max = arr[0];
var min = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
console.log(max);
console.log(min);
// 数组排序
// 冒泡排序
var temp;
for (var j = 0; j < arr.length - 1; j++) {
for (var i = 0; i < arr.length - j - 1; i++) {
if (arr[i] < arr[i + 1]) {
// temp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] = temp;
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
}
}
}
console.log(arr);
</script>
五.数组的操作方法
<script>
var arr = [1, 2, 3, 4, 5];
// 关注三点:1.方法传递的参数 2.返回值 3.是否改变原数组
// 1.push() 将一个或多个元素添加到数组的末尾
// 传递的参数:要添加的元素
// 返回值:添加后数组的长度
// 是否改变原数组:改变
console.log(arr.push(6, 7, 10));
console.log(arr);
// 2.pop() 从数组末尾删除一个元素
// 传递的参数:没有参数
// 返回值:被删除的元素
// 是否改变原数组:改变
console.log(arr.pop());
console.log(arr);
// 3.unshift() 将一个或多个元素添加到数组开头
// 传递的参数:要添加的元素
// 返回值:添加后数组的长度
// 是否改变原数组:改变
console.log(arr.unshift(-3, -2, -1, 0));
console.log(arr);
// 4.shift() 从数组开头删除一个元素
// 没有参数
// 被删除的元素
// 改变
// 5.includes() 确定数组中是否包含某个元素
// 参数:要查找的元素,开始查找的位置(可选参数)
// 返回值:true false
// 是否改变原数组:不改变
console.log(arr.includes(5, 9));
console.log(arr.includes(5, -3));
// 6.indexOf() 检测当前值在数组中第一次出现的位置索引
// 参数:要查找的元素,开始查找的位置(可选)
// 返回值:查找成功返回对应索引,查找失败返回 -1
// 是否改变:不改变
// 7.lastIndexOf() 检测当前值在数组中最后一次出现的位置索引
// 参数:要查找的元素,开始查找的位置(可选)
// 返回值:查找成功返回对应索引,查找失败返回 -1
// 是否改变:不改变
console.log(arr.lastIndexOf(5, -4));
// 8.join() 数组转换为字符串
// 参数:不传递默认","分割,链接符
// 返回值:转换后的字符串
// 是否改变:不改变
console.log(arr.join(""));
// 9.toString() 数组转换为字符串
// 参数:没有参数
// 返回值:转换后的字符串
// 是否改变:不改变
console.log(arr.toString());
// 10.Array.isArray() 判断一个值是否是数组
// 参数:要检测的值
// 返回值:true false
// 是否改变:不改变
console.log(Array.isArray(0));
// 11.splice() 数组的增删改
// 参数:开始操作的位置,要删除的个数,要添加的元素
// 返回值:被删除的元素组成的数组
// 是否改变:改变
// 删:从哪儿开始删,删掉几个
console.log(arr.splice(8, 1));
console.log(arr);
// 增:
arr.splice(8, 0, 5, 5, 5);
console.log(arr);
// 改
arr.splice(8, 3, 0, 0, 0);
console.log(arr);
// 清空数组
// arr.splice(0);
// console.log(arr);
// 12.slice() 复制数组部分内容(包含开始位置,不包含结束位置) [start,end)
// 参数:开始位置,结束位置
// 返回值:复制的元素组成的数组
// 是否改变:不改变
console.log(arr.slice(8, 12));
// 拷贝数组
console.log(arr.slice(0));
// 13.reverse() 颠倒数组
// 参数:没有参数
// 返回值:颠倒后的数组
// 是否改变:改变
console.log(arr.reverse());
console.log(arr);
// 14.concat() 链接两个或多个数组
// 参数:任意的值或多个数组
// 返回值:链接后的数组
// 是否改变:不改变
console.log(arr.concat([88, 99, 100], [101, 102, 103]));
console.log(arr);
// 改变数组的操作方法
// push() pop() unshift() shift() splice() reverse()
// 不改变数组的操作方法
// includes() indexOf() lastIndexOf() slice() join() toString() concat() Array.isArray()
</script>