Javascript 如何在一个字符串中使用lodash过滤器和贴图

Javascript 如何在一个字符串中使用lodash过滤器和贴图,javascript,arrays,object,ecmascript-6,lodash,Javascript,Arrays,Object,Ecmascript 6,Lodash,我有代码,其中使用2洛达斯方法过滤器和地图 const filtered_holidays = filter(holidays, day => day.holiday === 1); const type_calendar_holidays = map(filtered_holidays, 'day'); 如何在lodash中用1个字符串重写此内容?像这样的东西 holidays.filter().map().... const filtered_holidays = filte

我有代码,其中使用2洛达斯方法过滤器和地图

 const filtered_holidays = filter(holidays, day => day.holiday === 1);
 const type_calendar_holidays = map(filtered_holidays, 'day');
如何在lodash中用1个字符串重写此内容?像这样的东西

holidays.filter().map()....

 const filtered_holidays = filter(holidays, day => day.holiday === 1);
 const type_calendar_holidays = map(filtered_holidays, 'day');

把过滤器放进去

const type_calendar_holidays = map(filter(holidays, day => day.holiday === 1), 'day');

您可以使用贴图包裹过滤器:

 const result = map(filter(holidays, day => day.holiday === 1),'day');
您可以使用(需要导入整个lodash软件包CGE):

您可以使用(或组合):

注意:flow和flowRight在常规lodash中也可用,但由于参数的顺序是向后的,并且函数不是自动转换的,因此需要使用

这种情况下最简单的解决方案是使用vanilla js链接:

const result= holidays.filter(day => day.holiday === 1).map(o => o.day);

在vanilla JS中,您可以这样使用:

holidays.reduce((r, { day, holiday }) => holiday === 1 ? r.concat(day) : r, [])

只需嵌套
过滤器

const type_calendar_holidays = map(filter(holidays, ({ holiday }) => holiday == 1), 'day');

我不会将lodash用于如此简单的东西,原生映射()和过滤器()都很好。在JS中,当您链接某个对象时,其结果将传递到下一个操作。const filteredHolidays=holidays.filter(day=>day.holiday==1.map(holiday=>holiday.day)
const result= holidays.filter(day => day.holiday === 1).map(o => o.day);
holidays.reduce((r, { day, holiday }) => holiday === 1 ? r.concat(day) : r, [])
const type_calendar_holidays = map(filter(holidays, ({ holiday }) => holiday == 1), 'day');