1. 数组
1-1创建数组
字面量创建数组:
let arr = [];
构造函数创建数组:
let arr = new Array();
当我们使用typeof 来打印数组的数据类型时,都会返回一个object,如下:
let arr1 = [];
let arr2 = new Array();
console.log(typeof arr1);//object
console.log(typeof arr2);//object
1-2 数组赋值
先声明再赋值
let arr = [];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
注意下标是从0开始的。
声明时直接赋值:
let arr = [1,2,3,4,5];
我们可以在数组任意位置进行赋值,数组的长度会自动改变,空的位置使用undefined来进行填充
let arr = [];
arr[0] = 1;
arr[4] = 10;
console.log(arr);
//[ 1, <3 empty items>, 10 ]
注意:js里面数组的数据类型可以是任意类型。
let arr = [1,"Hello",3.14,true];
1-3 访问数组元素
通过数组的下标来访问储存在数组里面的元素。
let arr = [1,2,3,4,5];
console.log(arr[0]);//1
let arr = [1,2,3,4,5];
let i = 2;
console.log(arr[i]);//3
1-4 删除元素
使用delete运算符来删除数组中某一个元素
let arr = [1,2,3,4,5];
delete arr[2];//删除数组中的第3个元素
console.log(arr);
//[ 1, 2, <1 empty item>, 4, 5 ]
1-5数组的遍历
通过for循环来遍历数组
let arr = [1, 2, 3, 4, 5];
for (let i=0;i<arr.length;i++) {
console.log(arr[i]);
}
// 1
// 2
// 3
// 4
// 5
通过for-in来遍历数组
let arr = [1, 2, 3, 4, 5];
for (let i in arr) {
console.log(`键为${i}的元素值为{arr[i]}`);
}
//键为0的元素值为1
//键为1的元素值为2
//键为2的元素值为3
//键为3的元素值为4
//键为4的元素值为5
通过for-of来遍历数组
let arr = [1, 2, 3, 4, 5];
for (let i of arr) {
console.log(i);
}
// 1
// 2
// 3
// 4
// 5
2. 数组的属性和方法
2-1 数组相关属性
length:返回数组元素的个数
let arr = [1,2,3,4,5];
console.log(arr.length);//5
利用这个属性可以快速清空数组。
let arr = [1,2,3,4,5];
arr.length = 0;
console.log(arr);//[]
2-2 数组相关方法
添加删除方法
通过push()和pop()方法来实现添加删除,
let arr = [];
let i = arr.push("red","blue");
console.log(arr);//[ 'red', 'blue' ]
console.log(i);//2
let j = arr.pop();
console.log(arr);//[ 'red' ]
console.log(j);//blue
注意push()方法推入元素的时候是从右往左边推入的
shift()方法可以去除数组中第一个元素并且返回该元素。利用shift()和push()方法就可以实现从右往左的队列
let arr = [];
arr.push("red","green","pink");
let item = arr.shift();
console.log(item);//red
console.log(arr);//[ 'green', 'pink' ]
unshift()方法是在数组开头推入一个元素,跟pop()方法配合可以实现从左往右的队列
let arr = [];
arr.unshift("red","green","pink");
let item = arr.pop();
console.log(item);//pink
console.log(arr);//[ 'red', 'green' ]
操作方法
contact():先创建一个当前数组的副本,然后将接收道德参数添加到副本的末尾,最后返回新构建的数组,而原本的数组不会变化
let arr = [1,2,3];
let arr2 = arr.concat("red","blue");
console.log(arr);//[ 1, 2, 3 ]
console.log(arr2);//[ 1, 2, 3, 'red', 'blue' ]
slice():接收一个或者两个参数,代表返回项的起始和结束位置。
一个参数就代表起始位置,返回从指定的起始位置到数组末尾的所有项。
两个参数:从指定的起始位置到指定的末尾位置之间的项,但是不包括结束位置的项。
let arr = [1,2,3,4,5,6,7,8,9,10];
let i = arr.slice(3);
console.log(i);//[ 4, 5, 6, 7, 8, 9, 10 ]
console.log(arr);//[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
let j = arr.slice(2,6);
console.log(j);//[ 3, 4, 5, 6 ]
console.log(arr);//[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
splice():可以实现对数组的删除、插入和替换
删除:可以删除任意数量的元素,指定2个参数:要参数的第一项位置和要删除的项数。
let arr = [1,2,3,4,5,6,7,8,9,10];
let i = arr.splice(3,5);
console.log(i);//[ 4, 5, 6, 7, 8 ]
console.log(arr);//[ 1, 2, 3, 9, 10 ]
插入:可以向任意位置插入任意数量的元素,只需要提供三个参数:起始位置,0,要插入的参数。
let arr = [1,2,3,4,5,6,7,8,9,10];
let i = arr.splice(3,0,"red","blue");
console.log(i);//[]
console.log(arr);
//[ 1, 2, 3, 'red', 'blue', 4, 5, 6, 7, 8, 9, 10 ]
替换:替换的原理在于在插入的同时进行删除。
let arr = [1,2,3,4,5,6,7,8,9,10];
let i = arr.splice(3,2,"red","blue");
console.log(i);//[ 4, 5 ]
console.log(arr);
//[ 1, 2, 3, 'red', 'blue', 6, 7, 8, 9, 10 ]
Join()和split()
Join():将数组转化为字符串,可以传入分隔符作为参数。
let arr = [1,2,3];
let str = arr.join("");
console.log(str);//123
let str2 = arr.join(",");
console.log(str2);//1,2,3
split():将字符串转化为数组,传入参数指明以什么作为分割符
let str = "Hello";
let arr = str.split("");
console.log(arr);//[ 'H', 'e', 'l', 'l', 'o' ]
let arr2 = str.split("l");
console.log(arr2);//[ 'He', '', 'o' ]