简介
在本实验中,我们将探索 JavaScript 中映射数组求和的概念。本实验旨在深入理解如何使用提供的函数将数组中的每个元素映射到一个值,从而计算数组的总和。在本实验结束时,学习者将能够使用 Array.prototype.map() 和 Array.prototype.reduce() 在他们的 JavaScript 项目中实现映射数组求和。
在本实验中,我们将探索 JavaScript 中映射数组求和的概念。本实验旨在深入理解如何使用提供的函数将数组中的每个元素映射到一个值,从而计算数组的总和。在本实验结束时,学习者将能够使用 Array.prototype.map() 和 Array.prototype.reduce() 在他们的 JavaScript 项目中实现映射数组求和。
要通过使用提供的函数将数组中的每个元素映射到一个值来计算数组的总和,请使用 sumBy 函数。此函数使用 Array.prototype.map() 将每个元素映射到 fn 返回的值。然后,它使用 Array.prototype.reduce() 将每个值添加到累加器中,累加器初始值为 0。
const sumBy = (arr, fn) =>
arr
.map(typeof fn === "function" ? fn : (val) => val[fn])
.reduce((acc, val) => acc + val, 0);
示例用法:
sumBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], (x) => x.n); // 返回 20
sumBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], "n"); // 返回 20
要开始使用此函数进行编码练习,请打开终端/SSH 并输入 node。
恭喜你!你已经完成了映射数组求和实验。你可以在 LabEx 中练习更多实验来提升你的技能。