如何映射和计算

时间:2017-05-12 09:51:01

标签: javascript angularjs

我有两个对象,如下面的

DistanceMatrix = [{
    MaterialId : "AB",
    BeltId : "Belt1",
    Distance : 200
}, {
    MaterialId : "CD",
    BeltId : "Belt2",
    Distance : 220
}]

UnitMatrix = [{
    UnitDistance : 100,
    MaterialMapping :[{
        MaterialId : "AB",
        MaterialName : "name2"
        BeltId : "Belt1"                  
    }, {
        MaterialId : "CD",
        MaterialName : "name2"
        BeltId : "Belt2"                  
    }]
}]

现在我要查看 UnitMatrix的 "MaterialId""BeltId",并将 DistanceMatrix的 "Distance" UnitMatrix的<相加/ strong> "UnitDistance"并将其保存到具有材料名称的另一个对象。

预期结果:

Total Distance = [{
    Distance_AB : 300
    Distance_CD : 320
}]

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这个 -

DistanceMatrix.map(
  ({MaterialId, Distance})=>({
    [`Distance_${MaterialId}`] : UnitMatrix.Distance + Distance
  })
).reduce((p,v)=>Object.assign({}, p, v), {});