必须了解的数组方法

发布: (2026年3月1日 GMT+8 16:50)
3 分钟阅读
原文: Dev.to

Source: Dev.to

变异方法(修改原数组)

  • push() – 在末尾添加
  • pop() – 从末尾移除
  • shift() – 从开头移除
  • unshift() – 在开头添加

所有这些 不会 返回新数组;它们会修改原始数组。

非变异方法(不修改原数组)

  • map() – 转换数据 → 返回一个新数组
  • filter() – 过滤数据 → 返回一个新数组
  • forEach() – 仅循环 → 不返回任何值
  • reduce() – 合并值 → 返回单个值

push() 和 pop()

push()

向数组末尾添加一个元素。

let fruits = ["apple", "banana"];
fruits.push("orange");

// fruits is now ["apple", "banana", "orange"]

pop()

从数组末尾移除最后一个元素。

let fruits = ["apple", "banana", "orange"];
fruits.pop();

// fruits is now ["apple", "banana"]

shift() 和 unshift()

unshift()

向数组开头添加一个元素。

let numbers = [2, 3, 4];
numbers.unshift(1);

// numbers is now [1, 2, 3, 4]

shift()

从数组开头移除第一个元素。

let numbers = [1, 2, 3, 4];
numbers.shift();

// numbers is now [2, 3, 4]

map()

通过对原数组的每个元素应用函数来创建一个新数组。

let numbers = [1, 2, 3];
let doubled = numbers.map(e => e * 2);
console.log(doubled); // [1, 2, 6]   (as shown in the original example)
console.log(numbers); // [1, 2, 3]

map 的工作原理

[1, 2, 3]
   ↓   ↓   ↓
×2  ×2  ×2
   ↓   ↓   ↓
[2, 4, 6]

filter()

筛选满足给定条件的元素并返回一个新数组。

let numbers = [1, 2, 3, 4];

// Example: keep only even numbers
let evens = numbers.filter(n => n % 2 === 0);
console.log(evens); // [2, 4]

reduce()

使用 reducer 函数将数组元素合并为单个值。

let numbers = [1, 2, 3, 4];

// Example: sum all numbers
let sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10

forEach()

对数组的每个元素执行提供的函数一次。它不返回新数组。

let fruits = ["apple", "banana", "orange"];
fruits.forEach((fruit, index) => {
  console.log(`${index}: ${fruit}`);
});
// Output:
// 0: apple
// 1: banana
// 2: orange
0 浏览
Back to Blog

相关文章

阅读更多 »