我有一个按原样工作的函数,但我喜欢挑战自己,使用 lodash 函数将其写在一行中。我无法让这个特定的示例正常工作。
function sum(x,y) {
return (+x)+(+y);
}
var a = function(e, f) {
return Math.pow((e-f),2);
};
var x = _.reduce(arr, function(acc, v, k) {
var c = Math.pow((v-m), 2);
acc += c;
return acc;
}, 0);
var m = 5;
var arr = [4, 2, 5, 8, 6]
我预计 20。
这是我一直在尝试但没有运气的事情:
_.reduce(arr, _.partial(sum, _.partialRight(a, m)), 0);
产生 NaN。所以我想也许我可以用 sum 组成第一个函数:
_.reduce(arr, _.compose(_.partialRight(a, m), sum), 0);
产量 131044。
有什么建议吗?
最佳答案
您的原始函数已经是“一行,使用 Lodash 函数”:
var x = _.reduce(arr, function(acc, v, k) { return acc + Math.pow(v-m, 2); }, 0);
关于javascript - lodash 包含多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008983/