javascript - 如何循环一个对象并获取特定值以分别推送一个数组

标签 javascript arrays object

我有一些案例要循环一个具有多个键的对象并获取特定值并将每个键推送到一个数组,我希望这个论坛中的任何人都可以帮助我谢谢

[{
  "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/

相关文章:

java - 字符串生成器到 java 中的字符串数组

Java:实现类似问题

javascript - 迭代 Meteor.js 中的嵌套对象并将结果插入表中

css - 如何通过 html 对象和 css 设置公司样式?

javascript - 如何设置定时器在太平洋标准时间每天中午 12 点结束?

javascript - 如何一次播放数组中的一首歌曲 react js

java - Java中根据第一个迭代变量对嵌套循环元素进行分组

c# - 将 LINQ 与包装数组一起使用

javascript - 单页应用程序 - 前端独立于后端?

javascript - webgl drawArray 中间结果