用lodash链接pluck()和flatten()

时间:2014-02-20 21:58:56

标签: javascript lodash

这有效,但我怎样才能把它链起来?...

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()

2 个答案:

答案 0 :(得分:42)

我不会因为尴尬而删除这个问题,而是在这里留下任何其他可怜的笨蛋,在那里想知道“为什么这不是我的lodash连锁店工作?!”:

  

您必须使用.value()

结束链

所以这个:

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

和此:

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

答案 1 :(得分:4)

你必须知道,从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]