如何根据最近七天创建对象?

问题描述

我有以下对象:

[
    { createdAt: 6,numberofCreations: 3 },{ createdAt: 7: numberofCreations: 2 },{ createdAt: 2: numberofCreations: 6 },{ createdAt: 3: numberofCreations: 3 },{ createdAt: 4: numberofCreations: 1 },{ createdAt: 1: numberofCreations: 2 },{ createdAt: 5: numberofCreations: 1 }
]

“ createdAt”属性中的每个数字都代表一周中的某一天(周日为1,周日为2,周一为3,周三为4,周三为5,周五为6,周五为7)。 “ numberOfCreations”属性中的每个数字代表一周中的一天创建了多少个元素。

我需要重新排列并创建一个新对象,在该对象中,id根据最近7天进行组织,并且井井有条。

含义类似:

[2,6,3,1,2]

如果将第二个与第一个进行比较,您会发现这是根据星期几来组织的。

可以这样做吗?

预先感谢

解决方法

是的,这是可能的。您将要使用自定义sort,然后再使用map获取您要查找的值。

,

请注意,您可以按createdAt属性对数组进行排序,并使用map函数仅检索numberofCreations属性。像这样:

let input = [
    { createdAt: 6,numberofCreations: 3 },{ createdAt: 7,numberofCreations: 2 },{ createdAt: 2,numberofCreations: 6 },{ createdAt: 3,{ createdAt: 4,numberofCreations: 1 },{ createdAt: 1,{ createdAt: 5,numberofCreations: 1 }
]

input.sort(function(a,b) {
   return a.createdAt - b.createdAt;
})

console.log(input.map(el => el.numberofCreations))

,

您的代码显示对象的数组。顺便说一句,在您的对象内部,您用逗号误了冒号。

let array = [
  { createdAt: 6,numberofCreations: 1 }
];

要对数组的元素排序,可以使用 sort 方法。 “ a”是列表的第一个元素,“ b”是下一个元素。因为您要按createdAt进行排序,所以您需要将 a.createdAt b.createdAt 进行比较。

array.sort((a,b) => a.createdAt - b.createdAt);

console.log(array);
[{ createdAt: 1,{createdAt: 2,numberofCreations: 6},{createdAt: 3,numberofCreations: 3},{createdAt: 4,numberofCreations: 1},{createdAt: 5,{createdAt: 6,{createdAt: 7,numberofCreations: 2}]