首页 > 解决方案 > 根据日期创建部分

问题描述

我有一个数组,必须根据日期创建部分。因此,包含一个日期的数组中的所有元素都应该出现在一个部分中。这flags是一个包含时间戳的排序数组这最终结果应该是这样的 是我到目前为止得到的:

<Row gutter={20}>
{flags.map((flag, i) => {
    return 
      <div>
      <Row gutter={20}>
      {flags.map((flag, i) => {
        return(
          <div>
           {flags[i-1] && (moment(flags[i].timestamp).format('DD')!== moment(flags[i-1].timestamp).format('DD')) ? <Timestamp> {moment(flags[i].timestamp).format('DD')}</Timestamp> : <div><FlagComponent loading={loading} flag={flag} /> </div> }
        </div>
       ); })
      }
      </Row>
    </div>
}
</Row>

标签: reactjs

解决方案


我找到了解决方案,所以想在这里分享它,基本上我创建了所有具有相同时间戳的组并通过它进行映射:

const groups = flags.reduce((groups, flag) => {
    const flagDate = flag.timestamp
    if (!groups) {
      groups= [];
    }
    groups.push(flag);
    return groups;
  }, {});

  const groupArrays = Object.keys(groups).map(flagDate => {
    return {
      flagDate,
      flags: groups[flagDate]
    };
  });

所以groupArrays包含一个特定日期的元素数组


推荐阅读