So Instance I have the following function:
function merge(arr, key) {
return arr.reduce((r, o) => {
    if (r[o.key]) {
      r[o.key].real += o.real;
    } else {
      r[o.key] = { key: o.key, real: o.real };
    }
    return r;
  }, {});
}
And I want to use it 10 times, but every time the { key: o.key, real: o.real } will be different for instance { key: o.key, valueX: o.valueX } etc.. how can I generate this object as function parameter? so If I would run
merge(arr, key, ['key, real']) // object assign will happen to key and real
I am a little confused there
Case 1:
var arrayOne = [{ someKey: '22', value: 345 }, { someKey: '22', value: 543 }]
function merge(arr, key) {
    return arr.reduce((r, o) => {
        if (r[o.key]) {
          r[o.key].value += o.value;
        } else {
          r[o.key] = { key: o.someKey, value: o.value };
        }
        return r;
      }, {});
    }
console.log(merge(arrayOne, 'someKey'))Case 2:
var arrayTwo = [{ someKeyY: '22', valueZ: 345 }, { someKeyY: '22', valueZ: 543 }]
    function merge(arr, key) {
        return arr.reduce((r, o) => {
            if (r[o.key]) {
              r[o.key].valueZ += o.valueZ;
            } else {
              r[o.key] = { key: o.someKeyY, valueZ: o.valueZ };
            }
            return r;
          }, {});
        }
    console.log(merge(arrayTwo, 'someKeyY'))I want universal function instead of writing the same function over and over and changing only the assignment object...
 
     
    