我有两个数组,每个数组都有一个Year对象和一个键值对Year和Value.我想创建一个更新版本的array1,将每行年份的值减go array2中相应值的值
即A/FRED/2013应从16减3,减至13,以此类推.
到目前为止,我做到了,但我无法正确更新数组
array1.forEach(r1 => {
// Get the corresponding row from array2
let array2Record = array2.find(r2 => r2.key1 === r1.key1 && r2.key2 === r1.key2);
// Go through each of the years for this row in array1
Object.entries(r1.years).forEach(keyValuePair => {
// And reduce it by the value in array2
keyValuePair.value = keyValuePair.value - array2Record.years[keyValuePair.key].value;
})
})
这是数据的简化版本
let array1 = [
{
"key1": "A",
"key2": "Fred",
"years": {
"2013": 16,
"2014": 11,
"2015": 17
}
},
{
"key1": "A",
"key2": "Jim",
"years": {
"2013": 1,
"2014": 4,
"2015": 3
}
},
{
"key1": "B",
"key2": "Mary",
"years": {
"2013": 1,
"2014": 4,
"2015": 3
}
}
]
let array2 = [
{
"key1": "A",
"key2": "Fred",
"years": {
"2013": 3,
"2014": 2,
"2015": 7
}
},
{
"key1": "A",
"key2": "Jim",
"years": {
"2013": 9,
"2014": 3,
"2015": 1
}
},
{
"key1": "B",
"key2": "Mary",
"years": {
"2013": 8,
"2014": 3,
"2015": 6
}
}
]