我是函数式编程(和 ramda)方面的菜鸟。 我不知道如何利用这个:
[{
"name":"SBRF IANUA EFS CC Integration",
"expand":false,
"check":"N",
"jsonDiffPath":"/repo/Dynamics/Business Service/SBRF IANUA EFS CC Integration",
"changeCount":1,
"items":[
{
"name":"CRP-37920",
"expand":false,
"check":"N",
"jsonDiffPath":null,
"changeCount":1,
"items":[],
"op":"MODIFY",
"oldSnapshot":"723012",
"newSnapshot":"948053",
"myChange":false
}
],
"id":"F5ZGK4DPF5CHS3TBNVUWG4ZPIJ2XG2LOMVZXGICTMVZHM2LDMUXVGQSSIYQESQKOKVASARKGKMQEGQZAJFXHIZLHOJQXI2LPNY======",
"objectId":"30263",
"group":"repo",
"category":"Dynamics",
"type":"Business Service"
}
]
像这样:
[
{
"name":"[CRP-37920] SBRF IANUA EFS CC Integration",
"expand":false,
"check":"N",
"jsonDiffPath":"/repo/Dynamics/Business Service/SBRF IANUA EFS CC Integration",
"changeCount":1,
"op":"MODIFY",
"oldSnapshot":"723012",
"newSnapshot":"948053",
"items":[],
"id":"F5ZGK4DPF5CHS3TBNVUWG4ZPIJ2XG2LOMVZXGICTMVZHM2LDMUXVGQSSIYQESQKOKVASARKGKMQEGQZAJFXHIZLHOJQXI2LPNY======",
"objectId":"30263",
"group":"repo",
"category":"Dynamics",
"type":"Business Service"
}
]
“items”数组的每个元素都应与其父数组合并(具有内部数组的对象 => 合并到对象数组中)
提前致谢)
最佳答案
如果我正确理解您的要求,一种可能性是这样的:
const alterOne = chain(
children => parent => map(merge(__, dissoc('items', parent)), children),
prop('items')
)
const alterAll = pipe(map(alterOne), flatten)
可能有一些好方法可以使传递到 alterOne
中的 chain
的第一个函数成为无点的,但这对我来说似乎已经很可读了。
您可以在 Ramda REPL 中看到这一点。
关于javascript - 使用 ramda 将包含数组的对象解压缩为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289059/