这是初始状态。
const All = {
id : [ "a", "b", "c", "d", "e"],
count : [1, 2, 2],
}
我想All.id
拆分成[ ["a"], ["b", "c"], ["d", "e"]]
使用All.count
我试过了R.map(R.take(All.count), All.id)
。但这是行不通的。
我在这里想念的是什么?
您可以使用R.mapAccum在当前位置和上一个位置之间切片该部分,并在累加器中保留前一个位置。使用R.last取结果数组(第一个项是累加器)。
const { pipe, mapAccum, slice, last } = R
const fn = ({ id, count }) => pipe(
mapAccum((acc, v) => [acc + v, slice(acc, acc + v, id)], 0),
last
)(count)
const All = { id : [ "a", "b", "c", "d", "e"], count : [1, 2, 2] }
const result = fn(All)
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js" integrity="sha512-rZHvUXcc1zWKsxm7rJ8lVQuIr1oOmm7cShlvpV0gWf0RvbcJN6x96al/Rp2L2BI4a4ZkT2/YfVe/8YvB2UHzQw==" crossorigin="anonymous"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句