gpt4 book ai didi

Javascript - 在所有函数的输入上以编程方式执行方法

转载 作者:行者123 更新时间:2023-11-28 19:20:18 24 4
gpt4 key购买 nike

我想将解析器添加到函数列表中,例如:

var list = {
function1: function(input){},
function2: function(input){}
}

我希望所有输入参数都用另一个函数进行预处理。这可能吗?

有什么建议吗?

提前致谢

最佳答案

你的意思是这样的吗?它使用将 f 预应用于其输入的方法创建 funcs 的新副本。:

function addPreProcessing(funcs, f) {
return Object.keys(funcs).reduce(function (o, key) {
o[key] = function (input) {
return funcs[key](f(input));
};
return o;
}, {});
}

var list = {
log: function (input) { snippet.log(input); },
quadruple: function (input) { return input * 4; }
};

// preprocess all inputs by doubling them
var list2 = addPreProcessing(list, function (input) {
return input * 2;
});

list2.log(5); // logs 10 ( 5 * 2 )
snippet.log(list2.quadruple(1)); // logs 8 ( 1 * 2 * 4)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

这是上面 addPreProcessing 函数的 lodash 版本:

function addPreProcessing(funcs, f) {
return _.mapValues(funcs, _.flowRight(_.partial(_.flow, f), _.identity));
}

关于Javascript - 在所有函数的输入上以编程方式执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com