gpt4 book ai didi

javascript - 在 JavaScript 中使用 transduce 进行优化 - Transducers 和 Ramda

转载 作者:行者123 更新时间:2023-11-29 21:01:36 26 4
gpt4 key购买 nike

关于如何使用 transduce 的任何想法来自 Ramda.js,使其无需对数据进行中间转换((2x 过滤,1x 排序))进行优化。

import { curry, tap, pipe, filter, propEq, sortBy, prop } from 'ramda'

//const debugLog = curry((prefix, data) => console.log('@', prefix, data))

const func = (data, name) =>
pipe(

//tap(debugLog('pipe')),

prop('tasks'),

//tap(debugLog('prop')),

filter(propEq('username', name)),
filter(propEq('complete', false)),
sortBy(prop('dueDate'))
)(data)

export default func

目前我发现了类似的东西,但我仍然无法将它应用到我的解决方案中。

var numbers = R.range(0, 1000000)
var transducer = R.pipe(
R.map(R.add(1)),
R.map(R.multiply(2)),
R.filter(x => x % 2 === 0)
)

R.transduce(transducer, R.add, [], numbers)

最佳答案

const func = (data, name) =>
R.sortBy(R.prop('dueDate'), R.transduce( R.compose(
R.filter(R.propEq('username', name)),
R.filter(R.propEq('complete', false))
), R.flip(R.append), [], data.tasks))

关于javascript - 在 JavaScript 中使用 transduce 进行优化 - Transducers 和 Ramda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158814/

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