JS数组方法reduce经典用法代码分享及实例详解

1 下载量 131 浏览量 更新于2024-09-01 收藏 75KB PDF 举报
JavaScript 数组方法 reduce 经典用法代码分享 reduce() 方法是 JavaScript 数组中一个功能强大且常用的方法,它可以将数组中的每个元素进行累加、合并、统计等操作。下面我们将探讨 reduce() 方法的经典用法代码片段,并对其进行详细的解释。 **理解 reduce 函数** reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。其基本语法为:`arr.reduce([callback, initialValue])`。 **例子:累加数组元素** let arr = [1, 2, 3, 4, 5]; let sum = arr.reduce((p, c) => p + c, 10); // 25 在这个例子中,我们使用 reduce() 方法将数组中的每个元素进行累加,初始值为 10。reduce() 方法会将数组中的每个元素传递给回调函数,回调函数将累加器(p)和当前元素(c)进行相加,并返回结果。 **片段一:字母游戏** const anagrams = str => { if (str.length <= 2) { return str.length === 2 ? [str, str[1] + str[0]] : str; } return str.split("").reduce((acc, letter, i) => { return acc.concat(anagrams(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)); }, []); } anagrams("abc"); // 结果是什么呢? 在这个例子中,我们使用 reduce() 方法来生成所有可能的字母排列组合。reduce() 方法负责筛选出每一次执行的首字母,递归负责对剩下字母的排列组合。 **片段二:累加器** const sum = arr => arr.reduce((acc, val) => acc + val, 0); sum([1, 2, 3]); 在这个例子中,我们使用 reduce() 方法来累加数组中的每个元素。reduce() 方法将数组中的每个元素传递给回调函数,回调函数将累加器(acc)和当前元素(val)进行相加,并返回结果。 **片段三:计数器** const countOccurrences = (arr, value) => arr.reduce((a, b) => a + (b === value ? 1 : 0), 0); 在这个例子中,我们使用 reduce() 方法来统计数组中某个值的出现次数。reduce() 方法将数组中的每个元素传递给回调函数,回调函数将累加器(a)和当前元素(b)进行比较,如果当前元素等于目标值,则将累加器加 1,否则不变。 reduce() 方法是 JavaScript 数组中一个功能强大且常用的方法,它可以将数组中的每个元素进行累加、合并、统计等操作。通过本文,我们可以更好地理解 reduce() 方法的实例用法,并掌握它的经典用法代码片段。