在lodash拾取之后获取对象的其余部分



是否有一个简洁的lodash简写,以获得一个对象的其余部分后,在同一时间的选择?

假设我这样做:

const data = {
name: 'Joost',
location: 'UK',
status: 'On Stack Overflow'
}
const bioFields = ['name', 'location'];
const bio = pick(data, bioFields);
const rest = omit(data, bioFields);

只要有一个简洁的const [bio, rest] = pickWithRest(data, bioFields)在线iner就好了。

我认为某个版本的分区可能会这样做,但似乎不是这样。

我知道可能有很多方法可以用一些额外的代码行/字符来做到这一点,只是想知道我是否错过了一些令人满意的简短内容。

假设我使用的字段列表是动态的。

您可以使用lodash的_.over()_.pick().omit()创建一个函数:

const pickWithRest = _.over([_.pick, _.omit])
const data = { name: 'Joost', location: 'UK', status: 'On Stack Overflow' }
const bioFields = ['name', 'location'];
const [bio, rest] = pickWithRest(data, bioFields)
console.log({
bio,
rest
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

最新更新