首页 > 解决方案 > 在Javascript中级联函数的干净方法是什么?

问题描述

首先,这与链接无关。我知道链接是围绕函数方法的,而这不是,而且我无法找到一个术语。

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

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

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

标签: javascriptfunction

解决方案


如果您只是想避免嵌套并提高可读性,您可以制作一个函数数组并使用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)


推荐阅读