📅  最后修改于: 2023-12-03 14:42:39.589000             🧑  作者: Mango
reduce() 是 JavaScript 中一个重要的数组方法,用于数组元素的累计计算。它可以按顺序迭代数组中的所有元素,依次应用指定的回调函数来减少数组的值,并返回一个最终结果。在许多情况下,reduce() 可以取代常见的 for 循环。
reduce() 方法接受两个参数:
下面是 reduce() 的基本使用方法:
const array = [1, 2, 3, 4, 5];
const sum = array.reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(sum); // 15
上面的代码将数组 [1, 2, 3, 4, 5] 中的所有元素相加,并返回结果 15。回调函数中的 accumulator 始终存储相加的结果,而 currentValue 则不断更新为数组中的下一个元素。
reduce() 方法可以应用于许多场景,下面介绍一些常见的用法:
const array = [1, 2, 3, 4, 5];
const avg = array.reduce((accumulator, currentValue, currentIndex, array) => {
accumulator += currentValue;
if (currentIndex === array.length - 1) {
return accumulator / array.length;
} else {
return accumulator;
}
});
console.log(avg); // 3
上面的代码将数组中的所有元素相加后除以元素个数,返回平均数。
const array = [1, 2, 3, 2, 1, 4, 5];
const uniqueArray = array.reduce((accumulator, currentValue) => {
if (!accumulator.includes(currentValue)) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
console.log(uniqueArray); // [1, 2, 3, 4, 5]
上面的代码使用 reduce() 方法将重复的元素删除,只保留唯一的元素。
const words = ['hello', 'world', 'kitty'];
const sentence = words.reduce((accumulator, currentValue) => `${accumulator} ${currentValue}`);
console.log(sentence); // 'hello world kitty'
上面的代码使用 reduce() 方法将字符串数组拼接成一个句子。
JavaScript reduce() 方法是一个强大的数组方法,可以用于许多不同的场景,例如数组元素的数学计算、去重和字符串拼接等。尽管它可能会造成性能问题,但在某些情况下 reduce() 可以取代常见的 for 循环,并让你的代码更加简洁和易读。