在JavaScript中,Array(数组)是一种基础且强大的数据结构,用于在单个变量中存储多个值。数组中的每个值(也称为元素)可以通过索引(即位置)来访问,索引通常是从0开始的。
### 创建数组
- **字面量方式**:
let fruits = ['Apple', 'Banana', 'Cherry'];
- **构造函数方式**:
let numbers = new Array(1, 2, 3, 4, 5);
或者用于指定数组长度(但此时数组为空,且长度固定):
let emptyArray = new Array(5); // 长度为5的空数组
### 访问数组元素
通过索引访问:
console.log(fruits[0]); // 输出: Apple
### 插入和删除元素
- **插入元素**:直接通过索引赋值,如果索引超出当前数组长度,会自动扩展数组。
fruits[3] = 'Date'; // 插入'Date'到索引3的位置,原本Cherry将移动到索引4
- **删除元素**:使用`delete`关键字会删除元素,但会留下空位(即undefined的元素)。使用`splice()`方法可以更彻底地删除元素并调整数组长度。
delete fruits[2]; // fruits变为['Apple', 'Banana', undefined, 'Date']
// 使用splice删除索引2的元素
fruits.splice(2, 1); // fruits变为['Apple', 'Banana', 'Date']
### 遍历数组
- **for循环**:
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
- **forEach方法**:
fruits.forEach(function(item) {
console.log(item);
});
- **for...of循环**(ES6+):
for (let fruit of fruits) {
console.log(fruit);
}
### 数组方法
JavaScript的Array对象提供了许多有用的方法来操作数组,例如:
- `push()`:向数组末尾添加一个或多个元素,并返回新的长度。
- `pop()`:删除并返回数组的最后一个元素。
- `shift()`:删除并返回数组的第一个元素。
- `unshift()`:向数组的开头添加一个或多个元素,并返回新的长度。
- `concat()`:用于合并两个或多个数组。
- `slice()`:返回数组的一个浅拷贝,包含从`begin`到`end`(不包括`end`)的数组元素。
- `splice()`:通过删除现有元素和/或添加新元素来更改一个数组的内容。
- `sort()`:对数组的元素进行排序。
- `reverse()`:反转数组中的元素顺序。
- `map()`:创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
- `filter()`:创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
- `reduce()`:对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
这些方法和特性使得JavaScript的数组非常灵活且功能强大。