数组

概述

JavaScript 数组是一种用于存储多个值的变量类型,并且这些值可以是任何数据类型(数字、字符串、对象等)。数组可以使用多种方式进行创建和操作。

主要方法

创建数组

  1. 使用数组字面量

    1
    let arr = [1, 2, 3, "Hello", {name: "Alice"}];
  2. 使用 Array 构造函数

    1
    let arr = new Array(1, 2, 3, "Hello", {name: "Alice"});
  3. 创建一个具有特定长度的数组(初始值为 undefined

    1
    let arr = new Array(5); // 创建一个长度为5的数组

访问数组元素

  • 通过索引访问(索引从0开始):
    1
    2
    let arr = [10, 20, 30];
    console.log(arr[0]); // 输出: 10

修改数组元素

  • 通过索引修改
    1
    2
    3
    let arr = [10, 20, 30];
    arr[1] = 25;
    console.log(arr); // 输出: [10, 25, 30]

添加数组元素

  • 在数组末尾添加(使用 push 方法):

    1
    2
    3
    let arr = [10, 20, 30];
    arr.push(40);
    console.log(arr); // 输出: [10, 20, 30, 40]
  • 在数组开头添加(使用 unshift 方法):

    1
    2
    3
    let arr = [10, 20, 30];
    arr.unshift(5);
    console.log(arr); // 输出: [5, 10, 20, 30]

删除数组元素

  • 删除末尾元素(使用 pop 方法):

    1
    2
    3
    let arr = [10, 20, 30];
    arr.pop();
    console.log(arr); // 输出: [10, 20]
  • 删除开头元素(使用 shift 方法):

    1
    2
    3
    let arr = [10, 20, 30];
    arr.shift();
    console.log(arr); // 输出: [20, 30]
  • 通过索引删除(使用 splice 方法):

    1
    2
    3
    let arr = [10, 20, 30, 40];
    arr.splice(1, 1); // 从索引1开始删除1个元素
    console.log(arr); // 输出: [10, 30, 40]

遍历数组

  • 使用 for 循环

    1
    2
    3
    4
    let arr = [10, 20, 30];
    for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
    }
  • 使用 for...of 循环

    1
    2
    3
    4
    let arr = [10, 20, 30];
    for (let value of arr) {
    console.log(value);
    }
  • 使用 forEach 方法

    1
    2
    3
    4
    let arr = [10, 20, 30];
    arr.forEach(function(value) {
    console.log(value);
    });

数组方法

JavaScript 数组方法提供了一系列用于操作数组对象的内置函数。这些方法可以对数组进行遍历、搜索、修改、添加或删除元素等操作。以下是一些常用的 JavaScript 数组方法及其简要说明:

遍历数组

  • forEach():对数组的每个元素执行一次提供的函数。
  • map():创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
  • filter():创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
  • reduce():对数组中的每个元素执行一个提供的函数(升序执行),将其结果汇总为单个值。
  • every():测试数组的所有元素是否都通过了指定函数的测试。
  • some():测试数组中的某些元素是否通过了指定函数的测试。
  • find():返回数组中满足提供的测试函数的第一个元素的值。
  • findIndex():返回数组中满足提供的测试函数的第一个元素的索引。

修改数组

  • push():在数组的末尾添加一个或多个元素,并返回新的长度。
  • pop():从数组的末尾删除最后一个元素,并返回该元素的值。
  • shift():删除并返回数组的第一个元素。
  • unshift():在数组的开头添加一个或多个元素,并返回新的长度。
  • splice():通过删除或替换现有元素或者添加新元素来修改数组,返回由被删除的元素组成的数组。
  • sort():对数组的元素进行排序并返回数组。
  • reverse():颠倒数组中元素的顺序,返回该数组。
  • fill():使用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
  • copyWithin():在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回这个数组。

查找数组信息

  • indexOf():返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
  • lastIndexOf():返回在数组中可以找到一个给定元素的最后一个索引,如果不存在,则返回-1。
  • includes():判断一个数组是否包含一个指定的值,根据情况返回 truefalse
  • flat():将多维数组转换为一维数组。
  • flatMap():首先使用映射函数映射每个元素,然后将结果展平为一个新数组。

创建数组

  • from():从类似数组或可迭代对象创建一个新的、浅拷贝的数组实例。
  • of():创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let numbers = [1, 2, 3, 4, 5];

// 遍历数组
numbers.forEach(num => console.log(num));

// 修改数组
numbers.push(6);
console.log(numbers.pop()); // 输出: 6

// 查找数组信息
console.log(numbers.indexOf(3)); // 输出: 2
console.log(numbers.includes(4)); // 输出: true

// 创建新数组
let newNumbers = Array.from('123', Number); // 从字符串创建数组 [1, 2, 3]
console.log(Array.of(1, 2, 3, 4, 5)); // 输出: [1, 2, 3, 4, 5]

这些方法使得操作数组变得非常方便和直观,可以大大提高代码的可读性和效率。