【问题标题】:Chaining pluck() and flatten() with lodash用 lodash 链接 pluck() 和 flatten()
【发布时间】:2014-02-20 21:58:56
【问题描述】:

这行得通,但我怎样才能把它链接起来呢?...

allWeeks = _.flatten(_.pluck(dates.months, 'weeks'))
allDays  = _.flatten(_.pluck(allWeeks, 'days'))

我试过了:

allDays = _.chain(dates.months).pluck('weeks').flatten().pluck('days').flatten()

还有这个:

allDays = _(dates.months).pluck('weeks').flatten().pluck('days').flatten()

【问题讨论】:

    标签: javascript lodash


    【解决方案1】:

    我不会因为纯粹的尴尬而删除这个问题,而是将答案留给任何其他想知道“为什么我的 lodash 链不能正常工作?!”的可怜人:

    你必须以.value()结束链

    这样:

    allDays = _.chain(dates.months).pluck('weeks').flatten().pluck('days').flatten().value()
    

    还有这个:

    allDays = _(dates.months).pluck('weeks').flatten().pluck('days').flatten().value()
    

    【讨论】:

    • 从一个笨蛋到另一个笨蛋:谢谢。
    【解决方案2】:

    你要知道,从 Lodash 4.0.0 开始,_.pluck() 被 _.map() 取代 比如:

    var objects = [{ 'a': 1 }, { 'a': 2 }];
    
    // in 3.10.1
    _.pluck(objects, 'a'); // → [1, 2]
    _.map(objects, 'a'); // → [1, 2]
    
    // in 4.0.0
    _.map(objects, 'a'); // → [1, 2]
    

    【讨论】:

    • 好信息,可能更适合作为评论
    • 这是绝对有用的答案。问题是:你如何chain 一个map,来替换一个链接的pluck
    • 链接地图与链接 pluck 相同:_.chain(objects).map('a').value();
    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多