【发布时间】:2021-03-30 23:52:53
【问题描述】:
我有两组数据,我想使用第一组从第二组获取对象数组。我试图自己处理它,但我错过了几个步骤。
这是一组要使用的 id:
const idSet = {
"41": {
"id": "41"
},
"42": {
"id": "42"
},
"43": {
"id": "43"
}
}
这是第二组:
const nodes = {
"3": {
"nodeCommentId": 3,
"nodeId": 43,
},
"4": {
"nodeCommentId": 4,
"nodeId": 41
},
"6": {
"nodeCommentId": 6,
"nodeId": 42
},
"7": {
"nodeCommentId": 7,
"nodeId": 44
},
}
我需要通过 id 和 nodeId 进行搜索,所以我尝试使用类似这样的方法来仅获取第一组的 id:
const ids = R.compose(
R.values(),
R.pluck('id')
)(idSet)
我还想出了类似的东西:R.filter(R.compose(R.flip(R.contains)(ids), R.prop('nodeId')), nodes);
但是我有nodeId,它是一个数字而不是一个字符串,而且我需要一个没有键的对象数组。
期望的输出:
[
{
nodeCommentId: 3,
nodeId: 43
},
{
nodeCommentId: 4,
nodeId: 41
},
{
nodeCommentId: 6,
nodeId: 42
}
]
我们将不胜感激。
【问题讨论】:
-
您要查找的输出是什么?
-
您可以使用
R.map(Number)将ids转换为数字。然后你以后的过滤工作:jsbin.com/nofatayesi/edit?js,console -
@ScottSauyet 我正在尝试获取一个包含对象 41、42、43 的数组
-
我怀疑你的意思是
[41, 42, 43],所以你能edit 帖子包含所需的输出吗? -
@ScottSauyet 完成。现在应该很清楚了。
标签: ramda.js