Цепочка pluck () и flatten () с lodash

17

Это работает, но как я могу его связать? ...

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()
    
задан Gil Birman 20.02.2014 в 22:58
источник

2 ответа

39

Вместо того, чтобы удалять этот вопрос из-за явного смущения, я оставлю здесь ответ на любой другой бедный шмак, задающийся вопросом: «Почему чертовски не моя работа lodash?»:

  

Вы должны закончить цепочку .value()

, так что:

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

и это:

allDays = _(dates.months).pluck('weeks').flatten().pluck('days').flatten().value()
    
ответ дан Gil Birman 20.02.2014 в 23:13
источник
  • От одного шмака к другому: Спасибо. –  Chris Sobolewski 06.12.2017 в 20:12
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]
    
ответ дан Mazen Aly 27.01.2016 в 10:41
источник
  • Хорошая информация, может быть более уместна в качестве комментария –  SSH This 10.02.2016 в 21:05
  • Это действительно полезно; благодаря! –  Robert Grant 11.02.2016 в 00:30
  • Это определенно полезно в качестве ответа. Вопрос в том, как вы связываете карту, чтобы заменить цепную выщипывание? –  cale_b 01.03.2016 в 23:11
  • Цепочка карты такая же, как и цепочка вырезания: _.chain (objects) .map ('a'). value (); –  Mike Daly 06.05.2016 в 19:15