簡體   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