Skip to content

js中数组的常用方法

约 1023 字大约 3 分钟

JavaScript数组

2025-06-25

操作数组

1. join

将数组的所有元素连接成一个字符串

  let arr = ['Hello', 'world', '!'];
  console.log(arr.join(' ')); // 输出: "Hello world !"

2. split

根据指定的分隔符将字符串拆分为子字符串,并返回由这些子字符串组成的数组

  let str = "Hello world!";
  console.log(str.split(' ')); // 输出: ["Hello", "world!"]

3. push

在数组末尾添加一个或多个元素,并返回数组的新长度。

  let arr = [1, 2];
  arr.push(3);
  console.log(arr); // 输出: [1, 2, 3]

4. pop

移除数组的最后一个元素,并返回该元素。

  let arr = [1, 2, 3];
  console.log(arr.pop()); // 输出: 3
  console.log(arr); // 输出: [1, 2]

5. unshift

在数组开头添加一个或多个元素,并返回数组的新长度。

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

6. shift

移除并返回数组的第一个元素。

  let arr = [1, 2, 3];
  console.log(arr.shift()); // 输出: 1
  console.log(arr); // 输出: [2, 3]

7. reverse

颠倒数组中元素的位置。原地修改数组,并返回修改后的数组

  let arr = [1, 2, 3];
  arr.reverse();
  console.log(arr); // 输出: [3, 2, 1]

8. sort

对数组元素进行排序。默认按字符串Unicode码点顺序排列。可以传入一个比较函数以自定义排序规则。

  let arr = [3, 1, 2];
  arr.sort((a, b) => a - b);//默认a < b,返回值 < 0 为升序
  console.log(arr); // 输出: [1, 2, 3]

9. concat

合并两个或更多数组而不改变原数组,返回新数组

  let arr1 = [1, 2];
  let arr2 = [3, 4];
  let newArr = arr1.concat(arr2);
  console.log(newArr); // 输出: [1, 2, 3, 4]

10. splice

通过删除、替换现有元素或添加新元素来修改数组,并返回被删除的元素。

  let arr = [1, 2, 3, 4];
  arr.splice(1, 2, 'a', 'b'); // 从索引1开始删除2个元素,插入'a'和'b'
  console.log(arr); // 输出: [1, 'a', 'b', 4]

11. slice

提取数组的一部分并返回一个新数组。不修改原数组

  let arr = [1, 2, 3, 4, 5];
  let newArr = arr.slice(1, 4); // 提取从索引1到索引4(不包括)的元素
  console.log(newArr); // 输出: [2, 3, 4]

遍历数组

1. forEach

对数组的每个元素执行一次提供的函数,没有返回值。

  let arr = [1, 2, 3];
  arr.forEach((value, index) => console.log(`Index: ${index}, Value: ${value}`));
  // 输出:
  // Index: 0, Value: 1
  // Index: 1, Value: 2
  // Index: 2, Value: 3

2. map

创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

  let arr = [1, 2, 3];
  let newArr = arr.map(value => value * 2);
  console.log(newArr); // 输出: [2, 4, 6]

3. filter

创建一个新数组,包含通过所提供函数实现的测试的所有元素。

  let arr = [1, 2, 3, 4];
  let filteredArr = arr.filter(value => value > 2);
  console.log(filteredArr); // 输出: [3, 4]

4. find

返回数组中满足提供的测试函数的第一个元素的值。如果没有找到,则返回undefined。

  let arr = [1, 2, 3, 4];
  let foundValue = arr.find(value => value > 2);
  console.log(foundValue); // 输出: 3

5. findIndex

返回数组中满足提供的测试函数的第一个元素的索引。如果没有找到,则返回-1。

  let arr = [1, 2, 3, 4];
  let foundIndex = arr.findIndex(value => value > 2);
  console.log(foundIndex); // 输出: 2

6. some

测试数组中的某些元素是否至少有一个通过了由提供的函数实现的测试。

  let arr = [1, 2, 3, 4];
  let hasBigNumber = arr.some(value => value > 3);
  console.log(hasBigNumber); // 输出: true

7. every

测试数组的所有元素是否都通过了由提供的函数实现的测试。

  let arr = [1, 2, 3, 4];
  let allSmallNumbers = arr.every(value => value < 5);
  console.log(allSmallNumbers); // 输出: true

8. reduce

对数组中的每个元素执行一个reducer函数(升序执行),将其结果汇总为单个返回值。

  let arr = [1, 2, 3, 4];
  let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
  console.log(sum); // 输出: 10