必须了解的数组方法
发布: (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