簡體   English   中英

如何排列對象的javascript數組從一種格式到另一種格式

[英]How do I arrange a javascript array of objects from one format to another

我覺得這是一個非常簡單的答案,但是我很難弄清楚。

我想打開這個對象數組:

[{
    client: 'lalala@email.com',
    amount: 0,
    date: '2018-12'
},
{
    client: 'lalala@email.com',
    amount: '30',
    date: '2018-11'
}, {
    client: 'lalala@email.com',
    amount: '5',
    date: '2018-10'
}]

變成這個:

[{
    client: 'lalala@email.com',
    '2018-12': 0,
    '2018-11': '30',
    '2018-10': '5'
}]

我一直在嘗試用reduce()函數,但是沒有靠近任何地方。

感謝您抽出寶貴的時間。

reduce是正確的方法-以下是操作方法:

 const data = [{ client: 'lalala@email.com', amount: 0, date: '2018-12' }, { client: 'lalala@email.com', amount: '30', date: '2018-11' }, { client: 'lalala@email.com', amount: '5', date: '2018-10' }] const result = data.reduce((memo, {client, date, amount}) => { memo.client = client; memo[date] = amount; return memo; }, {}); console.log(result) 

使用Array.prototype.reduce可以工作:

 const a = [{ client: 'lalala@email.com', amount: 0, date: '2018-12' }, { client: 'lalala@email.com', amount: '30', date: '2018-11' }, { client: 'lalala@email.com', amount: '5', date: '2018-10' }] const b = a.reduce((acc, {date, amount}) => { return { ...acc, [date]: amount } }, { client: a[0].client }) console.log([b]) 

由於客戶端永遠是相同的,因此您可以在reduce()中將Object.assign置於良好狀態:

 const data = [{client: 'lalala@email.com',amount: 0,date: '2018-12'},{client: 'lalala@email.com',amount: '30',date: '2018-11'}, {client: 'lalala@email.com',amount: '5',date: '2018-10'}] const result = data.reduce((obj, {client, date, amount}) => Object.assign(obj, {client, [date]:amount}), {}); console.log([result]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM