Я пишу часть метода в ответ JS, скажем, у меня есть список, как показано ниже.
const itemList = [
{
"id": 3295042,
"tillPoint": "A",
"date": "23/01/2019",
"AnnaIncome": 100,
"PeterIncome": 50,
"KenIncome": 100,
"freeCash": 30
},
{
"id": 3295042,
"tillPoint": "B",
"date": "23/01/2019",
"AnnaIncome": 300,
"PeterIncome": 200,
"KenIncome": 100,
"freeCash": 50
},
{
"id": 3295042,
"tillPoint": "A",
"date": "22/01/2019",
"AnnaIncome": 120,
"PeterIncome": 120,
"KenIncome": 30,
"freeCash": 50
},
{
"id": 3295042,
"tillPoint": "B",
"date": "22/01/2019",
"AnnaIncome": 100,
"PeterIncome": 150,
"KenIncome": 50,
"freeCash": 60
},
]
Я хочу сделать .reduce
, чтобы список содержал меньше элементов только по дате.
Например, в приведенном выше списке фактически есть только две даты 22/01/2019 и 23/01/2019.
Я хочу сократить размер списка по дате каждого объекта. Таким образом, доход каждого человека будет складываться под собственным именем.
В конце концов, список станет только 2 объекта. И некоторые свойства удаляются в новом списке
например, ниже «id» и «tillpoint» удаляются, а остальные свойства суммируются вместе:
let itemList = [
{
"date": "23/01/2019",
"AnnaIncome": 300,
"PeterIncome": 250,
"KenIncome": 200,
"freeCash": 80
},
{
"date": "22/01/2019",
"AnnaIncome": 220,
"PeterIncome": 280,
"KenIncome": 80,
"freeCash": 110
}
]
То, что я пробовал здесь, похоже на приведенное ниже, но оно не работает.
itemList.reduce((a, b) => ({ date: a.AnnaIncome + b.AnnaIncome, a.PeterIncome + b.PeterIncome, a.KenIncome + b.KenIncome, a.freeCash + b.freeCash }));