我有一些案例要循环一个具有多个键的对象并获取特定值并将每个键推送到一个数组,我希望这个论坛中的任何人都可以帮助我谢谢
[{
"total_sms": 887,
"total_submitted": 101,
"total_in_queue": 696,
"total_processed": 0,
"total_delivered": 0,
"total_failed": 0,
"date": "2019-08-06"
}, {
"total_sms": 888,
"total_submitted": 102,
"total_in_queue": 697,
"total_processed": 0,
"total_delivered": 0,
"total_failed": 0,
"date": "2019-08-06"
}]
预期
total_sms = [887,888]
total_submitted = [101,102]
and etc
最佳答案
您可以使用 Array.reduce
按数组中每个对象的键进行分组。可以从Object.keys
中获取每个对象的键。
现在对于对象中的每个键,如果存在则将其添加到数组中,否则创建一个新数组并添加该元素:
const data = [{
"total_sms": 887,
"total_submitted": 101,
"total_in_queue": 696,
"total_processed": 0,
"total_delivered": 0,
"total_failed": 0,
"date": "2019-08-06"
}, {
"total_sms": 888,
"total_submitted": 102,
"total_in_queue": 697,
"total_processed": 0,
"total_delivered": 0,
"total_failed": 0,
"date": "2019-08-06"
}];
const grouped = data.reduce((acc, ele) => {
const keys = Object.keys(ele);
keys.forEach(key => acc[key] = acc[key] ? acc[key].concat(ele[key]) : [ele[key]]);
return acc;
}, {});
console.log(grouped);
关于javascript - 如何循环一个对象并获取特定值以分别推送一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612387/