提问人:Nicholas Foden 提问时间:9/20/2021 最后编辑:DecPKNicholas Foden 更新时间:9/20/2021 访问量:75
如何在 javascript 中根据未知数量的参数更改函数
How to change a function based on unknown number of arguments in javascript
问:
有没有办法在返回的函数中添加或操作表达式?
以下是单个参数的示例:
function trackByProp(prop) {
return function (value) {
return value[prop];
};
}
目的是扩展此功能以允许添加多个道具,例如
function trackByProp(...props) {
props.forEach((prop) => {
//Somehow add value[prop] to the return function???
});
return function (value) {
return; // value[arg1] + value[arg2] + value[argN]
};
}
或者,有没有更简单的方法来创建此函数?
答:
0赞
Nicholas Foden
9/20/2021
#1
function trackByProps(...props) {
return function (value) {
return props.reduce((result, prop) => result + value[prop], "")
}
}
在内部函数中使用属性可确保它们在闭包中可用。类似于单参数示例。然后,每次调用内部函数时都可以迭代它们。
评论
1赞
9/21/2021
在 FP 中,我们尽量保持函数简单。你原来的功能很好。如果要处理多个属性,则只需处理它们。map
评论
Array.prototype.reduce()
value
return props.reduce((prop, result) => result + value[prop])
或者你实际上应该是什么。value[arg1] + value[arg2] ...