1.push(item1, item2, ..., itemN)
: 将一个或多个元素添加到数组的末尾,并返回修改后的数组的新长度。
2.pop()
: 删除数组的最后一个元素,并返回被删除的元素。
3.shift()
: 删除数组的第一个元素,并返回被删除的元素。同时,修改原始数组的长度和索引。
4.unshift(item1, item2, ..., itemN)
: 在数组的开头插入一个或多个元素,并返回修改后的数组的新长度。
5.concat(array1, array2, ..., arrayN)
: 返回一个由原始数组和一个或多个其他数组或值连接而成的新数组。
6.join(separator)
: 将数组中的所有元素转化为字符串,并使用指定的分隔符将它们连接起来。返回最终的字符串。
7.slice(startIndex, endIndex)
: 返回一个新数组,其中包含原始数组中从 startIndex
到 endIndex
(不包括 endIndex
)之间的元素。
8.splice(startIndex, deleteCount, item1, item2, ..., itemN)
: 从数组中删除、替换或添加元素。startIndex
是开始修改的位置,deleteCount
是要删除的元素数量,item1, item2, ..., itemN
是要添加到数组的元素。
9.reverse()
: 将数组中的元素顺序反转,第一个变为最后一个,最后一个变为第一个。
10.sort(compareFunction)
: 对数组进行原地排序,默认按照元素的字符串值进行排序。可以提供一个可选的比较函数作为参数,用于指定排序规则。
11.indexOf(searchElement, fromIndex)
: 返回指定元素在数组中首次出现的索引。如果没有找到该元素,则返回 -1。fromIndex
参数可选,表示搜索的起始位置。
12.lastIndexOf(searchElement, fromIndex)
: 返回指定元素在数组中最后一次出现的索引。如果没有找到该元素,则返回 -1。fromIndex
参数可选,表示搜索的起始位置。
13.map(callback)
: 创建一个新数组,其中包含对原始数组的每个元素调用指定函数后的结果。callback
函数接受三个参数:当前元素、当前元素索引和原始数组
14.forEach(callback)
: 对数组中的每个元素执行指定的函数。callback
函数接受三个参数:当前元素、当前元素索引和原始数组。
15.filter(callback)
: 创建一个新数组,其中包含所有通过指定函数测试的元素。callback
函数接受三个参数:当前元素、当前元素索引和原始数组。
arr.filter(callback(element, index, array))
示例
const numbers = [1, 2, 3, 4, 5];
// 过滤出数组中的偶数
const evenNumbers = numbers.filter((element) => element % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4]
// 过滤出数组中大于 3 的元素
const greaterThanThree = numbers.filter((element) => element > 3);
console.log(greaterThanThree); // 输出: [4, 5]
16.some(callback)
它会遍历数组的每个元素,并对每个元素应用指定的回调函数,直到找到一个满足条件的元素为止(如果数组中至少有一个元素满足条件,则返回 true
。如果数组中没有任何元素满足条件,则返回 false
。)
arr.some(callback(element, index, array))
示例
const numbers = [1, 2, 3, 4, 5];
// 检查数组中是否存在大于 3 的元素
const hasGreaterThanThree = numbers.some((element) => element > 3);
console.log(hasGreaterThanThree); // 输出: true
// 检查数组中是否存在负数
const hasNegativeNumber = numbers.some((element) => element < 0);
console.log(hasNegativeNumber); // 输出: false
17.every(callback)它会逐个遍历数组的每个元素,并对每个元素应用指定的回调函数进行测试,只有当所有元素都满足条件时,才返回 true
,否则返回 false
。
arr.every(callback(element, index, array))
示例
const numbers = [1, 2, 3, 4, 5];
// 检查数组中的所有元素是否大于 0
const allPositive = numbers.every((element) => element > 0);
console.log(allPositive); // 输出: true
// 检查数组中的所有元素是否为偶数
const allEven = numbers.every((element) => element % 2 === 0);
console.log(allEven); // 输出: false
18.find(callback):返回数组中满足指定条件的第一个元素,如果不存在则返回 undefined。
此方法接受一个回调函数作为参数,该回调函数会接受三个参数:当前元素、当前索引和原始数组。回调函数应该返回一个布尔值,用于判断当前元素是否符合搜索条件。
callback
:需要执行的回调函数。
element
:当前正在处理的数组元素。
index
:当前正在处理的数组元素的索引(可选)。
array
:进行查找操作的原始数组(可选)。
thisArg
:执行回调时使用的 this
值(可选)。
array.find(callback(element[, index[, array]])[, thisArg])
示例
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const result = arr.find(function(element) {
return element > 5;
});
console.log(result); // 输出: 6
注意:它只会返回第一个符合条件的元素。如果需要查找所有符合条件的元素,则需要使用 filter()
方法。
19.reduce(callback, initialValue)
: 从左到右将数组元素组合成单个值。callback
函数接受四个参数:累计值、当前值、当前索引和原始数组。initialValue
参数可选,表示初始累计值。
arr.reduce(callback(accumulator, currentValue, index, array), initialValue)
示例
const numbers = [1, 2, 3, 4, 5];
// 计算数组中所有元素的总和
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 15
// 找出数组中的最大值
const max = numbers.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue));
console.log(max); // 输出: 5
const arr = [11, 22, 33, 44];
const sum = arr.reduce((prev, cur, index) => {
return prev + cur;
}, 10);
console.log(sum); // 输出: 120
20.flat(depth)
方法,可以用于将多维数组转化为一维数组。这个方法会递归地遍历数组中的每个元素,并将其拼接到一个新的一维数组中。
const arr = [1, 2, [3, 4, [5, 6]]];
const flattenedArr = arr.flat();
console.log(flattenedArr);
// 输出: [1, 2, 3, 4, 5, 6]
flat()
方法还可以接收一个可选的参数depth
,用于指定递归的深度。如果不提供depth
参数,flat()
方法会默认将所有嵌套的数组都展开为一维数组。如果提供了一个正整数的depth
值,它将限制递归的深度,只有达到指定深度的嵌套数组才会被展开。
const arr = [1, 2, [3, 4, [5, 6]]];
const flattenedArr = arr.flat(2);
console.log(flattenedArr);
// 输出: [1, 2, 3, 4, 5, 6]
需要注意的是:flat()
方法是ES2019新增的方法,如果你的项目中使用的是较旧的JavaScript版本,可能不支持该方法。在这种情况下,你可以使用其他方法来实现数组的平铺,例如使用递归或reduce()
方法。