I have an array of objects like this How to achieve output form of this array ? Input:
[
{ meta_key: 'nickname', meta_value: 'testqa2', id: '10' },
{ meta_key: 'first_name', meta_value: 'TEST', id: '10' },
{ meta_key: 'last_name', meta_value: 'QA', id: '10' },
{ meta_key: 'nickname', meta_value: 'testqa10', id: '11' },
{ meta_key: 'first_name', meta_value: 'TEST', id: '11' },
{ meta_key: 'last_name', meta_value: 'QA', id: '11' }
]
Output
[
{id:'10 , nickname:'testqa2 , first_name:'TEST' , last_name :'QA'},
{id:'10 , nickname:'testqa10, first_name:'TEST' , last_name :'QA'}
]
you can do it using reduce
like this
const data = [ { meta_key: 'nickname', meta_value: 'testqa2', id: '10' }, { meta_key: 'first_name', meta_value: 'TEST', id: '10' }, { meta_key: 'last_name', meta_value: 'QA', id: '10' }, { meta_key: 'nickname', meta_value: 'testqa10', id: '11' }, { meta_key: 'first_name', meta_value: 'TEST', id: '11' }, { meta_key: 'last_name', meta_value: 'QA', id: '11' } ] const result = Object.values(data.reduce((res, {id, meta_key, meta_value}) => { return { ...res, [id]: { id, ...res[id], [meta_key]: meta_value } } }, {})) console.log(result)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.