Lodash - 数学
Lodash - 数学操作
Section titled “Lodash - 数学操作”Lodash 包含了一些用于执行常见数学运算的函数。尽管 JavaScript 内置的 Math 对象提供了核心功能,但 Lodash 通常会增加便利性,尤其是在处理数字集合或需要特定精度时。
常用数学方法
Section titled “常用数学方法”| 方法与语法 | 描述与原生 JS 对比 |
|---|---|
| .add(augend, addend) .subtract(minuend, subtrahend) .multiply(multiplier, multiplicand) .divide(dividend, divisor) | 基本的算术运算:加法、减法、乘法、除法。功能上与原生的 +, -, *, / 运算符相似,但作为函数提供,可在函数式组合(例如,与 _.reduce 一起使用)中发挥作用。 |
| .ceil(number, [precision=0]) .floor(number, [precision=0]) _.round(number, [precision=0]) | 将 number 向上(ceil)、向下(floor)或四舍五入(round)到最接近的整数/精度。与 Math.ceil/floor/round 不同,这些方法接受可选的 precision 参数,用于指定要舍入到特定的十进制位数(正精度)或 10 的幂(负精度)。 |
| .max(array) .min(array) | 计算 array 中的最大值或最小值。如果数组为空或 falsey,则返回 undefined。原生的 Math.max(...array) 和 Math.min(...array) 可以达到类似的效果,但由于参数限制,可能在非常大的数组上失败。 |
| .maxBy(array, [iteratee=.identity]) .minBy(array, [iteratee=.identity]) | 在 array 中查找应用 iteratee 函数后产生最大值或最小值的元素。对于查找具有最高/最低属性值的对象非常有用。原生 JS 需要排序或手动迭代。 |
| .mean(array) .meanBy(array, [iteratee=_.identity]) | 计算 array 中值的平均值。meanBy 在计算平均值之前对每个元素应用 iteratee。没有直接的原生对应方法。 |
| .sum(array) .sumBy(array, [iteratee=_.identity]) | 计算 array 中值的总和。sumBy 在求和之前对每个元素应用 iteratee。虽然可以使用原生的 reduce 实现求和,但 _.sum/sumBy 通常更简洁。 |
示例:精度舍入
Section titled “示例:精度舍入”_.ceil(4.006); // => 5 (like Math.ceil)_.ceil(6.004, 2); // => 6.01 (round up to 2 decimal places)_.ceil(6040, -2); // => 6100 (round up to nearest 100)
_.floor(4.006); // => 4 (like Math.floor)_.floor(0.046, 2); // => 0.04_.floor(4060, -2); // => 4000
_.round(4.006); // => 4 (like Math.round)_.round(4.006, 2); // => 4.01_.round(4060, -2); // => 4100示例:使用 maxBy 和 sumBy
Section titled “示例:使用 maxBy 和 sumBy”const products = [ { name: 'apple', price: 1.2 }, { name: 'banana', price: 0.8 }, { name: 'orange', price: 1.5 }];
const mostExpensive = _.maxBy(products, 'price');// => { name: 'orange', price: 1.5 }
const totalValue = _.sumBy(products, 'price');// => 3.5Lodash 的数学函数在处理集合或需要特定舍入精度时表现出色,提供了比潜在复杂的原生实现更清晰的替代方案。
请访问Lodash 官方数学文档查找完整列表。