1、filter()
作用:根据指定条件筛选出数组中满足条件的元素,并返回一个新数组。
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
filter() 方法会遍历数组中的每个元素,对每个元素都调用一次 函数。如果函数返回 true,则当前元素会保留在新的数组中;如果 callback 函数返回 false,则当前元素不会包含在新的数组中。
2、map
作用:对数组中的每个元素执行回调函数,并返回一个新数组,新数组的元素是回调函数的返回值。
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map(num =>{
return num * num
}); // [1, 4, 9, 16, 25]
3、unshift()
作用:用于向数组的开头添加一个或多个元素,并返回新数组的长度
// 添加一个元素
const numbers = [2, 3, 4, 5];
const newLength = numbers.unshift(1);
console.log(numbers); // [1, 2, 3, 4, 5]
console.log(newLength); // 5
// 添加多个元素
const numbers = [4, 5];
const newLength = numbers.unshift(1, 2, 3);
console.log(numbers); // [1, 2, 3, 4, 5]
console.log(newLength); // 5
4、pust()
作用:用于向数组的尾部添加一个或多个元素,并返回新数组的长度
const numbers = [1, 2, 3, 4];
const newLength = numbers.push(5);
console.log(numbers); // [1, 2, 3, 4, 5]
console.log(newLength); // 5
// 添加多个
const numbers = [1, 2, 3];
const newLength = numbers.push(4, 5);
console.log(numbers); // [1, 2, 3, 4, 5]
console.log(newLength); // 5
5、reduce()
作用:用于对数组元素进行累积计算。它接受两个参数:回调函数和可选的初始值。
回调函数有四个参数:
累加器(accumulator):存储累积的结果。
当前值(current value):正在被处理的当前元素。
当前索引(current index):正在被处理的当前元素的索引(可选)。
原数组(array):调用reduce()的数组。
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 15
需要注意的是,如果不提供初始值,则reduce()
会将数组的第一个元素作为累加器的初始值,并从数组的第二个元素开始进行累积计算。
6、forEach()
作用: 该方法接受一个回调函数作为参数,回调函数会在数组的每个元素上被调用,并传递三个参数:当前元素值、当前索引和数组本身。回调函数可以用来对每个元素进行操作或执行其他自定义逻辑。
const array = [1, 2, 3, 4, 5];
array.forEach((element, index, array) => {
console.log(`当前元素:${element}`);
console.log(`当前索引:${index}`);
console.log(`原数组:${array}`);
});
需要注意的是,forEach() 方法不会返回新的数组,它只是用来遍历数组并对每个元素执行操作。如果需要返回一个新的数组,可以考虑使用 map() 方法。
此外,使用 forEach() 方法时,不能在遍历过程中通过 return 来中断或跳出循环。如果需要中断循环,可以使用 for...of 循环或 Array.prototype.some() 方法等其他方式。
7、every()
作用: 用于检测数组中的所有元素是否都满足指定条件。它会遍历数组的每个元素,并对每个元素调用一个回调函数进行判断,并传递三个参数:当前元素值、当前索引和数组本身。回调函数应返回一个布尔值,表示当前元素 是否满足条件。
const array = [2, 4, 6, 8, 10];
const isEven = (element) => {
return element % 2 === 0;
};
const allEven = array.every(isEven);
console.log(allEven); // 输出: true
需要注意的是,如果数组为空,则 every() 方法始终返回 true,因为没有元素不满足条件。此外,every() 方法只要遇到第一个不满足条件的元素,就会停止遍历并返回 false。
every() 方法可以用来检测数组中是否存在某种特定的情况,例如判断数组中的所有元素是否都满足某个条件。根据具体需求,可以编写不同的回调函数来实现不同的判断逻辑。
8、some()
作用: 用于检测数组中是否存在满足指定条件的元素。它会遍历数组的每个元素,并对每个元素调用一个回调函数进行判断,并传递三个参数:当前元素值、当前索引和数组本身。回调函数应返回一个布尔值,表示当前元素是否满足条件。
const array = [1, 3, 5, 7, 9];
const isEven = (element) => {
return element % 2 === 0;
};
const hasEvenNumber = array.some(isEven);
console.log(hasEvenNumber); // 输出: false
需要注意的是,如果数组为空,则 some()
方法始终返回 false
,因为没有元素满足条件。此外,some()
方法只要遇到第一个满足条件的元素,就会停止遍历并返回 true
。