[英]Looping through array of objects and return the key and value for each object
[英]Iterating through object Where Value is Array of Objects and return one value from each Objects of Array of Objects
如何從中獲取所有office
值並將其存儲為一個簡單的數組?
var data = {
'XYZ': [{
office: 'xyz.in',
reportName: 'payroll',
event: 'open',
timestamp: '02-12-2019 00:15:29'
},
{
office: 'xyz.in',
reportName: 'payroll',
event: 'processed',
timestamp: '02-12-2019 00:15:32'
}
],
'yyy': [{
office: 'yyy.in',
reportName: 'payroll',
event: 'delivered',
timestamp: '02-12-2019 00:15:29'
},
{
office: 'yyy.in',
reportName: 'payroll',
event: 'open',
timestamp: '02-12-2019 00:15:32'
}
],
'zzz': [{
office: 'xyz.in',
reportName: 'payroll',
event: 'delivered',
timestamp: '02-12-2019 00:15:29'
},
{
office: 'xyz.in',
reportName: 'payroll',
event: 'open',
timestamp: '02-12-2019 00:15:32'
}
]
}
輸出應該是這樣的:
officesArray = ['xyz.in', 'yyy.in', 'xyz.in']
我的代碼是
var Office = (Object.entries(grpDatas).flatMap(([k, v]) => (v.forEach(({office})=> office))))
它打印array of undefined
。
使用map
而不是forEach
並且您正在訪問email
而不是office
:
var data = { 'XYZ': [{ office: 'xyz.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:29' }, { office: 'xyz.in', reportName: 'payroll', event: 'processed', timestamp: '02-12-2019 00:15:32' } ], 'yyy': [{ office: 'yyy.in', reportName: 'payroll', event: 'delivered', timestamp: '02-12-2019 00:15:29' }, { office: 'yyy.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:32' } ], 'zzz': [{ office: 'xyz.in', reportName: 'payroll', event: 'delivered', timestamp: '02-12-2019 00:15:29' }, { office: 'xyz.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:32' } ] } var Email = Object.values(data).flatMap(item => [...new Set(item.map(({office})=> office))]) console.log(Email)
您可以從所需的屬性中獲取唯一值。
var data = { XYZ: [{ office: 'xyz.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:29' }, { office: 'xyz.in', reportName: 'payroll', event: 'processed', timestamp: '02-12-2019 00:15:32' }], yyy: [{ office: 'yyy.in', reportName: 'payroll', event: 'delivered', timestamp: '02-12-2019 00:15:29' }, { office: 'yyy.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:32' }], zzz: [{ office: 'xyz.in', reportName: 'payroll', event: 'delivered', timestamp: '02-12-2019 00:15:29' }, { office: 'xyz.in', reportName: 'payroll', event: 'open', timestamp: '02-12-2019 00:15:32' }] }, office = Object.values(data).flatMap(v => [...new Set(v.map(({ office }) => office))]); console.log(office);
const result = Object.keys(data) .map( key => data[key]) .flat() .map( element => element.office)
將所有內容轉換為數組並將它們展平有很大幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.