【问题标题】:How to create a new array of objects from an array of values in an array of objects. TypeScript?如何从对象数组中的值数组创建新的对象数组。打字稿?
【发布时间】:2021-05-21 05:34:21
【问题描述】:

我在如下的对象数组中有一个日期数组。我希望为每个单独的日期创建一个新的对象数组。拆分日期并将其余值复制到每个日期中。

 const obj = [
  {
    name: 'John',
    email: 'john@email.com',
    dateTime: [
      {
        date: '26-10-1988',
        start: '10:00',
        end: '10:30'
      },
      {
        date: '27-10-1988',
        start: '10:00',
        end: '10:30'
      },
      {
        date: '29-10-1988',
        start: '10:00',
        end: '10:30'
      },
    ]
  },
  {
    name: 'Mary',
    email: 'mary@email.com',
    dateTime: [
      {
        date: '26-10-1988',
        start: '10:00',
        end: '10:30'
      },
    ]
  },
]

*编辑:

(互联网连接不佳,不知怎的,这个问题在我完成之前就提交了)

但这是我正在寻找的最终结果:

    const newObj = [
  {
    name: 'John',
    email: 'john@email.com',
    dateTime: {
      date: '26-10-1988',
      start: '10:00',
      end: '10:30'
    }
  },
  {
    name: 'John',
    email: 'john@email.com',
    dateTime: {
      date: '27-10-1988',
      start: '10:00',
      end: '10:30'
    },
  },
  {
    name: 'John',
    email: 'john@email.com',
    dateTime: {
      date: '29-10-1988',
      start: '10:00',
      end: '10:30'
    },
  },
  {
    name: 'Mary',
    email: 'mary@email.com',
    dateTime: {
      date: '26-10-1988',
      start: '10:00',
      end: '10:30'
    }
  }
];

【问题讨论】:

  • 请阅读How to Ask。本网站不是代码编写服务,您至少应该自己尝试一下。
  • 请添加您的尝试。
  • 另外,恕我直言,您对您想要的结果的口头描述非常模棱两可。根据显示的输入数据添加一个适当的示例,说明您想要什么特定输出。

标签: javascript typescript sorting object multidimensional-array


【解决方案1】:

你可以这样做:

const newArray = obj.map(i => {
  return i.dateTime.map(dateObj => {
    return {
      name: i.name,
      email: i.email,
      dateTime: dateObj
    };
  });
});

const resultArray = [].concat.apply([], newArray);

console.log(resultArray);

resultArray 将是(数组的最后一项已展开,因此您可以检查它):

编辑

您可以通过以下方式获得相同的结果:

const resultArray = newArray.flat(1);
console.log(resultArray);

【讨论】:

    猜你喜欢
    • 2020-05-16
    • 2018-07-03
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2021-09-24
    • 2021-08-02
    相关资源
    最近更新 更多