javascript - 在Javascript中级联函数的干净方法是什么?
问题描述
首先,这与链接无关。我知道链接是围绕函数方法的,而这不是,而且我无法找到一个术语。
基本上我正在寻找的是一种将一个函数的输出传递到另一个函数并将其链接起来的干净方法。看起来像这样的东西
const updatedAssets = addCategory(addTagLine(addTags(addImages(addPoints(addID(addTitle(assets)))))));
基本上assets
是一个对象,每个函数都会向其中添加新的键和值。
解决方案
如果您只是想避免嵌套并提高可读性,您可以制作一个函数数组并使用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)
推荐阅读
- git - 使用 Git LFS 推送到网络驱动器时出现问题
- scikit-learn - 为 scikit-learn 运行 setup.py install ... 错误
- javascript - 需要一个像这样工作的Javascript函数 .includes(['1', '2', '3'])
- maphilight - 为什么 maphilight 选项 'alwaysson' 不能正常工作?
- excel - 从表名中提取列索引
- python - Python 脚本在手动运行时有效,但在启动时无效:“字符串索引超出范围”
- android - 使用“adb 设备”显示但在 Visual Studio (xamarin.android) 上不显示的设备
- mysql - 根据其条目列值迭代行
- angular - Nativescript Angular 多屏幕支持
- wordpress - 无法在 phpmyadmin 中编辑表值