1、声明数组
使用数组字面量
const arr1 = [];
const arr2 = [1, 2, 3];
const arr3 = ["apple", "banana", "cherry"];
const arr4 = [1, "apple", true, null]; // 可以包含不同类型的元素
1.2 使用 Array 构造函数
const arr5 = new Array();
const arr6 = new Array(1, 2, 3);
const arr7 = new Array(3); // 创建一个长度为3的数组,但元素为undefined
2、数组的基本操作
获取数组长度
const arr = [1, 2, 3];
console.log(arr.length); // 输出 3
访问数组元素
const arr = [1, 2, 3];
console.log(arr[0]); // 输出 1
arr[1] = 4; // 修改数组元素
console.log(arr); // 输出 [1, 4, 3]
添加元素到数组末尾
const arr = [1, 2, 3];
arr.push(4); // 添加元素到末尾
console.log(arr); // 输出 [1, 2, 3, 4]
从数组末尾移除元素
const arr = [1, 2, 3];
const lastElement = arr.pop(); // 移除末尾元素并返回该元素
console.log(arr); // 输出 [1, 2]
console.log(lastElement); // 输出 3
添加元素到数组开头
const arr = [1, 2, 3];
arr.unshift(0); // 添加元素到开头
console.log(arr); // 输出 [0, 1, 2, 3]
从数组开头移除元素
const arr = [0, 1, 2, 3];
const firstElement = arr.shift(); // 移除开头元素并返回该元素
console.log(arr); // 输出 [1, 2, 3]
console.log(firstElement); // 输出 0
删除指定位置的元素
const arr = [0, 1, 2, 3, 4];
const removedElements = arr.splice(2, 1); // 从索引2开始删除1个元素
console.log(arr); // 输出 [0, 1, 3, 4]
console.log(removedElements); // 输出 [2]
在指定位置插入元素
const arr = [0, 1, 3, 4];
arr.splice(2, 0, 2); // 在索引2的位置插入元素2
console.log(arr); // 输出 [0, 1, 2, 3, 4]
合并数组
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const mergedArr = arr1.concat(arr2); // 合并两个数组
console.log(mergedArr); // 输出 [1, 2, 3, 4, 5, 6]
转换数组
const arr = [1, 2, 3];
const str = arr.toString(); // 转换为字符串
console.log(str); // 输出 "1,2,3"
const joinedStr = arr.join('-'); // 使用指定分隔符转换为字符串
console.log(joinedStr); // 输出 "1-2-3"
3、遍历数组
使用 for 循环
const arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
使用 forEach 方法
const arr = [1, 2, 3];
arr.forEach(function(element) {
console.log(element);
});
4、其他高阶方法
map 方法
map() 方法用于对数组中的每个元素执行某种操作,并返回一个新数组,新数组的每个元素是原数组元素经过操作后的结果。map() 不会修改原数组。
const arr = [1, 2, 3];
const newArr = arr.map(function(element) {
return element * 2;
});
console.log(newArr); // 输出 [2, 4, 6]
filter 方法
filter() 方法用于筛选数组中的元素,根据提供的函数返回 true 或 false 来决定是否保留某个元素。它返回一个新数组,包含符合条件的元素。filter() 不会修改原数组。
const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.filter(function(element) {
return element % 2 === 0;
});
console.log(filteredArr); // 输出 [2, 4]
reduce 方法
reduce() 方法用于将数组中的所有元素归并为一个单一的值。它接收一个回调函数,该回调函数有两个参数:accumulator(累加器)和 currentValue(当前值)。reduce() 会依次处理数组中的每个元素,最终返回一个值。
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce(function(accumulator, element) {
return accumulator + element;
}, 0);
console.log(sum); // 输出 15
includes 方法
includes() 方法用于检查数组中是否包含某个值,返回布尔值 true 或 false
const arr = [1, 2, 3];
console.log(arr.includes(2)); // 输出 true
console.log(arr.includes(4)); // 输出 false
indexOf 方法
indexOf() 方法用于查找数组中某个值的索引。如果找到该值,返回其索引;否则返回 -1。
const arr = [1, 2, 3];
console.log(arr.indexOf(2)); // 输出 1
console.log(arr.indexOf(4)); // 输出 -1
lastIndexOf 方法
lastIndexOf() 方法用于从数组的末尾向前查找某个值的索引。如果找到该值,返回其索引;否则返回 -1。
const arr = [1, 2, 3, 2];
console.log(arr.lastIndexOf(2)); // 输出 3
find 方法
find() 方法用于查找数组中第一个满足条件的元素,并返回该元素。如果没有找到,返回 undefined。
const arr = [1, 2, 3, 4, 5];
const foundElement = arr.find(function(element) {
return element > 3;
});
console.log(foundElement); // 输出 4
findIndex 方法
findIndex() 方法用于查找数组中第一个满足条件的元素的索引。如果没有找到,返回 -1。
const arr = [1, 2, 3, 4, 5];
const foundIndex = arr.findIndex(function(element) {
return element > 3;
});
console.log(foundIndex); // 输出 3
5、数组的拷贝
使用 slice 方法
const arr = [1, 2, 3];
const copiedArr = arr.slice();
console.log(copiedArr); // 输出 [1, 2, 3]
使用扩展运算符
const arr = [1, 2, 3];
const copiedArr = [...arr];
console.log(copiedArr); // 输出 [1, 2, 3]
6、数组的排序
默认排序
.sort()
const arr = [3, 1, 4, 2];
arr.sort();
console.log(arr); // 输出 [1, 2, 3, 4]
自定义排序
const arr = [3, 1, 4, 2];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr); // 输出 [1, 2, 3, 4]
6、数组的反转
使用 reverse 方法
const arr = [1, 2, 3];
arr.reverse();
console.log(arr); // 输出 [3, 2, 1]
7、数组的填充
使用 fill 方法
const arr = new Array(5);
arr.fill(0);
console.log(arr); // 输出 [0, 0, 0, 0, 0]
8、数组的去重
使用 Set
const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 输出 [1, 2, 3]
9、数组的切片
使用 slice 方法
const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(1, 4);
console.log(slicedArr); // 输出 [2, 3, 4]
总结
以上是 JavaScript 数组的基本知识和常用操作方法。数组是 JavaScript 中非常重要的数据结构,掌握这些基本操作可以帮助你更高效地处理数据。