在 JavaScript 中,数组方法可以分为改变原数组的方法和不改变原数组的方法。下面是对这些方法的详细分类:
改变自身的方法
这些方法会直接修改数组本身:
-
push()
: 向数组末尾添加一个或多个元素。let arr = [1, 2, 3]; arr.push(4); // arr 是 [1, 2, 3, 4]
-
pop()
: 从数组末尾删除一个元素,并返回该元素。let arr = [1, 2, 3]; arr.pop(); // arr 是 [1, 2]
-
shift()
: 从数组开头删除一个元素,并返回该元素。let arr = [1, 2, 3]; arr.shift(); // arr 是 [2, 3]
-
unshift()
: 向数组开头添加一个或多个元素。let arr = [1, 2, 3]; arr.unshift(0); // arr 是 [0, 1, 2, 3]
-
splice()
: 从数组中添加或删除元素。let arr = [1, 2, 3]; arr.splice(1, 1, 4, 5); // arr 是 [1, 4, 5, 3]
-
sort()
: 对数组进行排序,默认按字符编码排序。let arr = [3, 1, 2]; arr.sort(); // arr 是 [1, 2, 3]
-
reverse()
: 反转数组的顺序。let arr = [1, 2, 3]; arr.reverse(); // arr 是 [3, 2, 1]
-
fill()
: 用指定的值填充数组的指定部分。let arr = [1, 2, 3]; arr.fill(0, 1, 3); // arr 是 [1, 0, 0]
不改变自身的方法
这些方法不会修改原数组,而是返回一个新数组或结果:
-
concat()
: 合并两个或多个数组,返回一个新数组。let arr1 = [1, 2]; let arr2 = [3, 4]; let result = arr1.concat(arr2); // result 是 [1, 2, 3, 4]
-
slice()
: 提取数组的一部分,并返回一个新数组。let arr = [1, 2, 3]; let result = arr.slice(1, 2); // result 是 [2]
-
map()
: 创建一个新数组,其结果是调用一个提供的函数对每个数组元素执行操作后的结果。let arr = [1, 2, 3]; let result = arr.map((x) => x * 2); // result 是 [2, 4, 6]
-
filter()
: 创建一个新数组,其中包含所有通过测试的数组元素。let arr = [1, 2, 3]; let result = arr.filter((x) => x > 1); // result 是 [2, 3]
-
reduce()
: 对数组中的每个元素执行一个提供的函数,返回单个值。let arr = [1, 2, 3]; let result = arr.reduce((sum, x) => sum + x, 0); // result 是 6
-
find()
: 返回数组中满足提供测试函数的第一个元素。let arr = [1, 2, 3]; let result = arr.find((x) => x > 1); // result 是 2
-
some()
: 检查数组中是否至少有一个元素满足提供的测试函数。let arr = [1, 2, 3]; let result = arr.some((x) => x > 2); // result 是 true
-
every()
: 检查数组中的所有元素是否都满足提供的测试函数。let arr = [1, 2, 3]; let result = arr.every((x) => x > 0); // result 是 true
-
includes()
: 检查数组中是否包含指定的值。let arr = [1, 2, 3]; let result = arr.includes(2); // result 是 true
-
join()
: 将数组中的所有元素连接成一个字符串。let arr = [1, 2, 3]; let result = arr.join("-"); // result 是 '1-2-3'