以下是 JavaScript 中常用的数组方法列表,并按照 Markdown 格式生成,同时列举了是否改变原数组的信息以及示例:
| 方法名 | 说明 | 是否改变原数组 | 示例 |
|---|---|---|---|
push(element1, element2, ..., elementN) | 将一个或多个元素添加到数组末尾。 | 是 | let arr = [1, 2, 3]; arr.push(4, 5); // [1, 2, 3, 4, 5] |
pop() | 移除并返回数组的最后一个元素。 | 是 | let arr = [1, 2, 3]; arr.pop(); // [1, 2] |
shift() | 移除并返回数组的第一个元素。 | 是 | let arr = [1, 2, 3]; arr.shift(); // [2, 3] |
unshift(element1, element2, ..., elementN) | 将一个或多个元素添加到数组的开头。 | 是 | let arr = [1, 2, 3]; arr.unshift(0); // [0, 1, 2, 3] |
concat(array1, array2, ..., arrayN) | 将两个或多个数组合并成一个新数组。 | 否 | let arr1 = [1, 2]; let arr2 = [3, 4]; arr1.concat(arr2); // [1, 2, 3, 4] |
join(separator) | 将数组中的所有元素连接成一个字符串,使用指定的分隔符。 | 否 | let arr = [1, 2, 3]; arr.join('-'); // "1-2-3" |
slice(startIndex, endIndex) | 返回数组中指定索引范围的片段,不包括结束索引对应的元素。 | 否 | let arr = [1, 2, 3, 4, 5]; arr.slice(2, 4); // [3, 4] |
splice(startIndex, deleteCount, element1, element2, ..., elementN) | 从指定索引位置开始删除指定数量的元素,并可以插入新的元素。 | 是 | let arr = [1, 2, 3, 4, 5]; arr.splice(2, 2, 'a', 'b'); // [1, 2, "a", "b", 5] |
reverse() | 颠倒数组中元素的顺序。 | 是 | let arr = [1, 2, 3]; arr.reverse(); // [3, 2, 1] |
sort(compareFunction) | 对数组元素进行排序,默认按照字符串的 Unicode 编码进行排序。 | 是 | let arr = [3, 1, 2]; arr.sort(); // [1, 2, 3] |
indexOf(searchElement, startIndex) | 返回指定元素在数组中第一次出现的索引位置。 | 否 | let arr = [1, 2, 3, 4, 5]; arr.indexOf(3); // 2 |
lastIndexOf(searchElement, startIndex) | 返回指定元素在数组中最后一次出现的索引位置。 | 否 | let arr = [1, 2, 3, 4, 3]; arr.lastIndexOf(3); // 4 |
filter(callback) | 创建一个新数组,其中包含通过测试函数的所有元素。 | 否 | let arr = [1, 2, 3, 4, 5]; arr.filter(num => num > 2); // [3, 4, 5] |
map(callback) | 创建一个新数组,其中包含对原数组的每个元素应用回调函数后的结果。 | 否 | let arr = [1, 2, 3]; arr.map(num => num * 2); // [2, 4, 6] |
reduce(callback, initialValue) | 通过遍历数组逐个将元素累积到一个值中,返回最后的累积结果。 | 否 | let arr = [1, 2, 3]; arr.reduce((sum, num) => sum + num, 0); // 6 |
forEach(callback) | 对数组中的每个元素执行一次回调函数。 | 否 | let arr = [1, 2, 3]; arr.forEach((num) => console.log(num)); // 打印 1, 2, 3 |
every(callback) | 检测数组中的所有元素是否都满足指定条件。 | 否 | let arr = [1, 2, 3]; arr.every((num) => num > 0); // true |
some(callback) | 检测数组中是否至少有一个元素满足指定条件。 | 否 | let arr = [1, 2, 3]; arr.some((num) => num > 2); // true |