2014-02-20 2 views
17

Это работает, но как я могу приковать его ...Цепной срывать() и придавить() с 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() 

ответ

38

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

Вы должны закончить цепочку с .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() , поэтому для ex ample:

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] 
+0

Хорошая информация, может быть более уместна в качестве комментария –

+0

Это действительно полезно; благодаря! –

+0

Это * определенно * полезно в качестве ответа. Вопрос в том, как вы «цепляете» «карту», ​​чтобы заменить цепочку «выщипывание»? –

 Смежные вопросы

  • Нет связанных вопросов^_^