gpt4 book ai didi

javascript - 如何使用 moment.js 按本周和上周记录对数据进行分组

转载 作者:行者123 更新时间:2023-11-28 03:49:43 24 4
gpt4 key购买 nike

我有一个包含日期属性的对象数组。我想按本周的记录和上周的记录对其进行分组。使用 javascript 和 moment.js 实现此目的的最佳方法是什么?以下是数据集的结构。

const obj = [{
first_name: "Peter",
last_name: "Hansen",
date: "2018-01-01"
},
{ first_name: "Jonas",
last_name:"Da Vinci",
date: "2018-01-02"
},
{ first_name: "Ohmel",
last_name: "Reynolds",
date: "2018-01-03"
},
{ first_name: "Raisa",
last_name: "Johnson",
date: "2017-12-25"

},
{
first_name: "Karen",
last_name: "Anderson",
date: "2017-12-26"
},
{
first_name: "Kristina",
last_name: "Alvaro",
date: "2017-12-27"
}]

预期输出:

本周

  • 彼得·汉森
  • 乔纳斯·达芬奇
  • 欧梅尔·雷诺兹

上周

  • 赖莎·约翰逊
  • 凯伦·安德森
  • 克里斯蒂娜·安德森

最佳答案

您可以使用 array#reduce 按周对数组进行分组。

const arr = [{ first_name: "Peter", last_name: "Hansen", date: "2018-01-01" }, { first_name: "Jonas", last_name:"Da Vinci", date: "2018-01-02" }, { first_name: "Ohmel", last_name: "Reynolds", date: "2018-01-03" }, { first_name: "Raisa", last_name: "Johnson", date: "2017-12-25"}, { first_name: "Karen", last_name: "Anderson", date: "2017-12-26" }, { first_name: "Kristina", last_name: "Alvaro", date: "2017-12-27" }];
var sortedByWeek = arr.reduce((res, {date, first_name, last_name}) => {
var startOfWeek = moment(date, 'YYYY-MM-DD').startOf('week').add(1,'days').format('YYYY-MM-DD');
res[startOfWeek] = res[startOfWeek] || [];
res[startOfWeek].push(first_name + ' ' + last_name);
return res;
},{});

console.log(sortedByWeek);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.2/moment.min.js"></script>

关于javascript - 如何使用 moment.js 按本周和上周记录对数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48112073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com