gpt4 book ai didi

javascript:使用 lodash/fp 流返回对象

转载 作者:行者123 更新时间:2023-12-01 03:53:14 29 4
gpt4 key购买 nike

我正在将 _.chain 函数组转换为使用 _fp.flow,但在处理 flow 柯里化(Currying)复杂对象的方式时遇到一些困难。我正在努力

  1. 将具有某些分组函数(例如 countBy/sumBy)的对象数组缩减为对象/字典(例如 { group1:10, group2:15 ... } )
  2. 将其映射到键/值对数组中(例如 [{column: 'group1', value: '10'}, ...])
  3. asc/desc 顺序对某个变量进行排序

但现在生成的对象最终被展平为一个长数组。代码示例如下。下面代码中的reducer函数工作正常,并按照我的预期对值进行分组,但我认为each步骤和orderBy之间的柯里化(Currying)> 正在以某种方式展平对象(在 console.log 中的 _.each 之后正确形成所需的对象。

我已将代码示例放在随附的 JSFiddle 中。

const inData = [{
target: 123,
groupby: 'a'
},...
}];

const colData = _.flow(
_.reduce(reducer, {}),
_.toPairs,
_.each(([value, column]) => {
console.log(value);
console.log(column);
const outObj = {
value: value,
column: column
}
console.log(outObj)
return (outObj);
}),
_.orderBy(['value'], [sortDir]),
// Have tried result with or without fromPairs
_.fromPairs
)(inData);

PS:我在我的主项目中使用 ES6 语法和 React,如果这有什么区别的话。

https://jsfiddle.net/moc0L5ac/

最佳答案

您需要使用 map 而不是 each,并将 [value, column] 的顺序固定为 [column,值]

const colData = _.flow(
_.reduce(reducer, {}),
_.toPairs,
_.map(([column, value]) => {
const outObj = {
value: value,
column: column
}
return outObj;
}),
_.orderBy(['value'], [sortDir])
)(inData);

关于javascript:使用 lodash/fp 流返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002388/

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