如果匹配,则迭代2个对象并乘以一些属性

时间:2017-02-02 12:18:25

标签: javascript angularjs object

我有一个像这样的对象

Object {SD00002:1,SD00011:3,SD00002:6}

属性的值并自动设置。 现在我有一个像这样的对象数组: enter image description here

现在我想迭代2个对象并将“cmimi”属性(在数组中的对象内)与第一个对象中属性的对应值相乘。第一个对象的属性与对象数组中的“kodartikulli”相同。我想将所有值乘以“cmimi”并返回所有值的总和。在Stack Overflow上提出的其他问题似乎都没有帮助我解决问题。

1 个答案:

答案 0 :(得分:3)

您可以迭代数组并将kodartikulli的值作为乘数的关键。



var data1 = { SD00002: 1, SD00011: 3, SD00052: 6 },
    data2 = [
        { cmimi: 189.9, kodartikulli: 'SD00002' },
        { cmimi: 99.9,  kodartikulli: 'SD00011' },
        { cmimi: 69.9,  kodartikulli: 'SD00052' }
    ],
    total = data2.reduce(function (r, a) {
        return r + a.cmimi * (data1[a.kodartikulli] || 0);
    }, 0);
      
console.log(total);