繁体   English   中英

用lodash链接咖喱功能

[英]chaining curry functions with lodash

关于咖喱函数这篇文章的启发,我试图将它们链接起来,并提出了这个解决方案。 我不确定mixin,因为我不知何故lodash可能已经具备了这样的功能。 如果是这样,此函数称为什么?

var _ = require('lodash');

var get = _.curry(function(property, object) {return object[property]});

var map = _.curry(function(fn, objects){ return objects.map(fn) });

var json = {
    "user": "hughfdjackson",
    "posts": [
        { "title": "why curry?", "contents": "..." },
        { "title": "prototypes: the short(est possible) story", "contents": "..." }
    ]
}

_.mixin({
    then:function(input, fn) {return fn(input);}
});

_(json)
    .then(get('posts'))
    .then(map(get('title')))
    .tap(console.log)

在休·杰克逊(Hugh Jackson)的文章(出色!)中, then函数可能来自Promise库,可能与AJAX调用有关。 因此,如果您从那里开始,则无需自己做。 像这样将它混入_似乎很奇怪。

Lo-Dash和Underscore将允许您使用其curry功能来实现此目的。 如一些较新的库RamdaFKit自动执行此操作。 他们的getmap版本已经被管理,并设计用于这种方式。 (公开:我是Ramda的作者之一)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM