【问题标题】:How to create array based unique key?如何创建基于数组的唯一键?
【发布时间】:2023-02-16 21:36:12
【问题描述】:

我有这样的日期范围,我想基于每个月创建数组。

1 => Thu Feb 16 2023
1 => Fri Feb 17 2023
1 => Sat Feb 18 2023
1 => Sun Feb 19 2023
1 => Mon Feb 20 2023
1 => Tue Feb 21 2023
1 => Wed Feb 22 2023
1 => Thu Feb 23 2023
1 => Fri Feb 24 2023
1 => Sat Feb 25 2023
1 => Sun Feb 26 2023
1 => Mon Feb 27 2023
1 => Tue Feb 28 2023
2 => Wed Mar 01 2023
2 => Thu Mar 02 2023
2 => Fri Mar 03 2023

我需要像这样的数组

1 => [Fri Feb 17 2023, Sat Feb 18 2023, ...],
2 => [Wed Mar 01 2023, Thu Mar 02 2023, ...]

这是我的代码

let dts = {};
newDates.forEach((dt, i) => {
  let mn = new Date(dt).getMonth();
  dts[mn] = dt;
});
console.log(dts);

我得到这样的结果

1 : Tue Feb 28 2023
2 : Fri Mar 03 2023

只得到最后一个元素。如何解决这个问题?谢谢

【问题讨论】:

  • 所以你需要创建一个数组并推送它
  • 如果我对这个问题的理解正确,你是在寻找“分组依据”的月份吗?

标签: javascript arrays


【解决方案1】:

所以创建一个数组并推送它。

const dts = newDates.reduce((acc, dt) => {
  const mn = new Date(dt).getMonth();
  acc[mn] = acc[mn] || [];
  acc[mn].push(dt);
  return acc;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多