javascript - 将数组对象字段数据添加到 JavaScript 中的单个对象中

标签 javascript arrays json object

我将此数据添加到我的响应中

var data=[ { id: 9,
    ticketId: 9,
    member: { id: 3, email: 'ganeshpandi@gmail.com' } },
  { id: 10,
    ticketId: 9,
    member: { id: 4, email: 'braveganesh128@gmail.com' } } ];

我想将所有邮件发送到所有成员(member)邮箱,

我的预期结果是:

var data=[ {
    ticketId: 9,
    member: {  email: ['ganeshpandi@gmail.com','braveganesh128@gmail.com'] } },
   ];

这个结果在 foreach 中可能吗?

最佳答案

您可以使用 array#reduce 根据新对象累加器中的 ticketId 对数组对象进行分组,然后使用 Object.values() 提取每个键的所有值。

var data = [{ id: 9, ticketId: 9, member: { id: 3, email: 'ganeshpandi@gmail.com' } }, { id: 10, ticketId: 9, member: { id: 4, email: 'braveganesh128@gmail.com'}}],
    result = Object.values(data.reduce((r, {ticketId, member: {email}}) => {
      r[ticketId] = r[ticketId] || {ticketId, member:{email: []}};
      r[ticketId].member.email.push(email);
      return r;
    },{}));
console.log(result);

关于javascript - 将数组对象字段数据添加到 JavaScript 中的单个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50443118/

相关文章:

json - 当我从 txt 中读取时,Dict 的键没有得到认可 - Julia

json - AWS Cognito 解码 JWKS.json

javascript - 在 Javascript 中格式化来自 Restful Service 的日期

javascript - 令人困惑的 JavaScript 数组语法

javascript - 将对象数组转换为单个对象

c++ - 在 C++ 中打印二维数组

javascript - CrossRider - 有没有办法将数组作为函数参数传递而不将它们转换为对象?

javascript - 如何将数组与数组的数组进行比较?

javascript - 使用 Vanilla JS 将事件和函数附加到动态元素

javascript - 谷歌地图语言只有英语