在JavaScript中级联函数的干净方法是什么?

时间:2019-02-03 18:36:33

标签: javascript function

首先,这与链接无关。我知道链接是围绕函数方法进行的,而事实并非如此,而且我还不能为此找到一个术语。

基本上,我正在寻找一种干净的方法来将一个函数的输出传递到另一个函数并将其链接。看起来像这样

const updatedAssets = addCategory(addTagLine(addTags(addImages(addPoints(addID(addTitle(assets)))))));

基本上assets是一个对象,每个函数都会在其中添加新的键和值。

1 个答案:

答案 0 :(得分:1)

如果只想避免嵌套并提高可读性,则可以对函数进行数组处理,然后使用reduce() / reduceRight()进行组合。例如:

let one = n => "one " + n
let two = n => "two " + n
let three = n => "three " + n

let functions = [one, two, three]

let res = functions.reduce((res, f) => f(res), "go")
console.log(res)

// or the opposite direction:
let resRev = functions.reduceRight((res, f) => f(res), "go")
console.log(resRev)