Javascript中的Array数组对象详谈


在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的数组非常灵活且功能强大。