最近我开始使用Ramda来处理JSONAPI响应,但在处理复杂关系时遇到了一些麻烦。我有一个大数组包含三个小数组,我需要合并这三个小数组,但每个小数组都有不同的属性。我需要一个包含这三个不同属性的数组。
例如:
const bigArray = [[...], [...], [...]]
arrayOne = [
{
id = 1,
attributes = {...},
specialProperty1 = {...}
},
{
id = 2,
attributes = {...},
specialProperty1 = {...}
}
]
arrayTwo = [
{
id = 1,
attributes = {...},
specialProperty2 = {...}
},
{
id = 2,
attributes = {...},
specialProperty2 = {...}
}
]
arrayThree = [
{
id = 1,
attributes = {...},
specialProperty3 = {...}
},
{
id = 2,
attributes = {...},
specialProperty3 = {...}
}
]
相同的id代表着同一个人。例如,arrayOne中的id 1与arrayTwo中的id 1引用的是同一个人,因此属性也相同。这三个数组之间唯一的区别在于特殊属性。我需要合并每个特殊属性的整个对象,以便所有三个特殊属性都在具有相应id的对象中。
就像这样:
const newArray = [
{
id = 1,
attributes = {...},
specialProperty1 = {...},
specialProperty2 = {...},
specialProperty3 = {...}
},
{
id = 2,
attributes = {...},
specialProperty1 = {...},
specialProperty2 = {...},
specialProperty3 = {...}
},
]
此外,这是在一个 Promise 中返回的。因此,需要注意的是,这三个较小的数组都在一个大数组中。我认为这是最让我困扰的问题,我很难确定要使用哪些 Ramda 方法来引用大数组中的三个数组。