allomov
10/17/2017 - 7:52 PM

solution1.js

initial = [{ code: "1", size: 0 }, { code: "2", size: 0 }, { code: "3", size: 0 }, { code: "4", size: 0 }]
update  = [{ code: "1", size: 100 }, { code: "2", size: 100 }, { code: "2", size: 120 }]
hash    = {}

for (let i = 0; i < initial.length; i++) {
  hash[initial[i].code] = initial[i];
}

for (let i = 0; i < update.length; i++) {
  let o = update[i];
  hash[o.code].size += o.size;
}

initial = result
initial = [{ code: "1", size: 0 }, { code: "2", size: 0 }, { code: "3", size: 0 }, { code: "4", size: 0 }]
update  = [{ code: "1", size: 100 }, { code: "2", size: 100 }, { code: "2", size: 120 }]
hash = {}

for (let i = 0; i < initial.length; i++) {
  let o = initial[i];
  hash[o.code] = { code: o.code, size: 0 };
}


for (let i = 0; i < update.length; i++) {
  let o = update[i];
  hash[o.code].size += o.size;
}

result = []
for (var key in hash) {
   result.push(hash[key])
}

initial = result