Lodash 的 _.add 函数有什么意义?
What's the point of Lodash's _.add function?
我想我遗漏了一些东西,但为什么 _.add(x, y)
比 x + y
好?
“运算符”函数,如 add
、sub
等,当您需要将运算符作为回调传递给某些高阶函数时非常有用,例如:
array.reduce(add) // compute a sum
array.sort(sub) // sort array numerically
在某些语言中,您可以直接传递运算符,例如
array.reduce(+)
但是Javascript不能那样做,因此需要在某处定义这些函数。
特别是对于 lodash,你可以在任何需要“iteratee”的地方使用 _.add
,他们文档中的示例:
function square(n) {
return n * n;
}
var addSquare = _.flow([_.add, square]);
addSquare(1, 2);
或
var zipped = _.zip([1, 2], [10, 20], [100, 200]);
// => [[1, 10, 100], [2, 20, 200]]
_.unzipWith(zipped, _.add);
// => [3, 30, 300]
我想我遗漏了一些东西,但为什么 _.add(x, y)
比 x + y
好?
“运算符”函数,如 add
、sub
等,当您需要将运算符作为回调传递给某些高阶函数时非常有用,例如:
array.reduce(add) // compute a sum
array.sort(sub) // sort array numerically
在某些语言中,您可以直接传递运算符,例如
array.reduce(+)
但是Javascript不能那样做,因此需要在某处定义这些函数。
特别是对于 lodash,你可以在任何需要“iteratee”的地方使用 _.add
,他们文档中的示例:
function square(n) {
return n * n;
}
var addSquare = _.flow([_.add, square]);
addSquare(1, 2);
或
var zipped = _.zip([1, 2], [10, 20], [100, 200]);
// => [[1, 10, 100], [2, 20, 200]]
_.unzipWith(zipped, _.add);
// => [3, 30, 300]