[英]How to assign object with properties to property of an object using reduce
我有這樣的數據
const dataSet = [
{
'Transactions.productRef': 'SomeRef/123',
'Transactions.itemCount': 25,
'Transactions.revenue': 1000,
},
{
'Transactions.productRef': 'SomeRef/124',
'Transactions.itemCount': 35,
'Transactions.revenue': 500,
},
];
並且我正在嘗試將具有屬性的 object 分配給“Transactions.productRef”的值以獲得類似的東西
{
'SomeRef/123': {
productRef: 'SomeRef/123',
soldTickets: 25,
revenue: 1000,
},
'SomeRef/124': {
productRef: 'SomeRef/124',
soldTickets: 35,
revenue: 500,
}
}
然后用對象創建一個新數組。 我嘗試過這樣的事情
const dataSet = [ { 'Transactions.productRef': 'SomeRef/123', 'Transactions.itemCount': 25, 'Transactions.revenue': 1000, }, { 'Transactions.productRef': 'SomeRef/124', 'Transactions.itemCount': 35, 'Transactions.revenue': 500, }, ]; const productMap = {}; dataSet.reduce((data, p) => { p[data['Transactions.productRef']] = p[data['Transactions.productRef']] || {}; p[data['Transactions.productRef']].soldTickets = data['Transactions.itemCount']; p[data['Transactions.productRef']].revenue = data['Transactions.revenue']; p[data['Transactions.productRef']].productRef = data['Transactions.productRef']; return p; }, productMap); const newData = Object.values(productMap); console.log(newData);
但是console.log
返回一個空數組,就像數據從未分配給productMap
object一樣。 我究竟做錯了什么? 提前致謝!
在reduce
回調輸入中交換p
和data
,如下所示。
因為第一個參數是previousValue
而第二個參數是currentValue
。
dataSet.reduce((p, data) => {
p[data['Transactions.productRef']] = p[data['Transactions.productRef']]
|| {};
p[data['Transactions.productRef']].soldTickets =
data['Transactions.itemCount'];
p[data['Transactions.productRef']].revenue =
data['Transactions.revenue'];
p[data['Transactions.productRef']].productRef =
data['Transactions.productRef'];
return p;
}, productMap);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.