gpt4 book ai didi

ramda.js - 如何使用 Ramda 将数组拆分为子列表?

转载 作者:行者123 更新时间:2023-12-03 23:59:24 28 4
gpt4 key购买 nike

这是初始状态。

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>

关于ramda.js - 如何使用 Ramda 将数组拆分为子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63952099/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com