[英]How to convert a javascript array of Objects from one format to another format?
[英]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.