是否有一个简洁的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>