我有以下对象:
var player = {
cards: [1,2,3,4,5],
hand: []
}
我想将该cards
属性的一些项目移动到hand
.
我虽然使用镜头来防止物体发生变异,但无法得出一个解决方案,让我只需要组合函数就可以做到这一点。也许不应该那样做。
我能做的最好的如下:
function drawIntoHand(amount, player) {
const deck = R.lensProp('cards')
const hand = R.lensProp('hand')
let cardsRemoved = R.over(deck, R.take(amount), player)
R.set(hand, R.append(cardsRemoved), player)
return R.set(deck, R.drop(amount), player)
}