我想执行过滤功能,如下所示:
配置:
const arr = {
id: 888,
name: 'Library',
bookLists: [{
"name": "Book 1",
"booked": "Y"
}, {
"name": "Book 2",
"booked": "N"
}, {
"name": "Book 3",
"booked": "Y"
}]
};
然后,我尝试用flag'预订=== y'
过滤书籍列表R.compose(R.filter(x => x.booked === 'Y'), R.prop('bookLists'))(arr)
我得到了结果,这是正确的
[{"booked": "Y", "name": "Book 1"}, {"booked": "Y", "name": "Book 3"}]
但是,这是我想要的一部分。我该如何实现这样的结果?
{
id: 888,
name: 'Library',
bookLists: [{
"name": "Book 1",
"booked": "Y"
}, {
"name": "Book 3",
"booked": "Y"
}]
}
您可以使用R.evolve
:
R.evolve({bookLists: R.filter(x => x.booked === 'Y')})(arr)
结果将是:
{
id: 888,
name: 'Library',
bookLists: [{
"name": "Book 1",
"booked": "Y"
}, {
"name": "Book 3",
"booked": "Y"
}]
}
请参阅此处的相关文档。