我有下面的对象数组,
[{
a: 1,
created_on: '2021-04-23 10:00:01',
}, {
b: 1,
created_on: '2021-04-24 09:03:01',
}, {
b: 1,
created_on: '2021-04-24 13:03:01',
}]
首先,我需要用忽略时间的日期分组。
所以,
{
"2021-04-23": [{
a: 1,
created_on: '2021-04-23 10:00:01',
}],
....
}
如果是像created_on:'2021-04-23'
这样的日期,我可以使用lodash/groupby
。
我仍然可以使用它,但现在它涉及到一些条件,将那些created_on
转换为日期格式。
此外,我还需要按那些按日期结果分组的对象进行分组,以便它们的created_on
落在一个时间间隔内。
"SALES_SLOTS": [
{
"slot": "00:00-04:00"
},
{
"slot": "04:00-08:00"
},
{
"slot":"08:00-12:00"
},
{
"slot":"12:00-16:00"
},
{
"slot":"16:00-20:00"
},
{
"slot":"20:00-24:00"
}
],
因此,如果created_on:'2021-04-23 10:00:01'
,它应该在组中,
{
"08:00-12:00": [{
a: 1,
created_on: '2021-04-23 10:00:01',
}]
}
因此,首先应该按照创建日期对结果进行分组,然后再按照定义的时隙对每个组中的元素进行分组。
我想,如果我可以使用条件分组,我可以达到预期的结果。
>
按日期分组相当简单,您可以使用映射
按created_on.slice(0,10)
对数据进行分组。
然后,我创建了一个帮助函数getslot
,它根据经过的时间返回一个槽。现在,由于您的插槽相当宽,只测试小时部分就足够了。
接下来,对于每组日期,再次使用GetSlot
helper和Map
按时间分组,并使用Object.FromentRies
您可以获得所需的对象。
注意:我在代码中使用了表达式而不是语句(使用逗号、默认参数),这只是一个优先选择。
null
const
arr = [{ a: 1, created_on: "2021-04-23 10:00:01" }, { b: 1, created_on: "2021-04-24 09:03:01" }, { b: 1, created_on: "2021-04-24 13:03:01" }],
slots = [{ slot: "00:00-04:00" }, { slot: "04:00-08:00" }, { slot: "08:00-12:00" }, { slot: "12:00-16:00" }, { slot: "16:00-20:00" }, { slot: "20:00-24:00" }],
grpDate = Array.from(
arr.reduce(
(m, o, _i, _arr, d = o.created_on.slice(0, 10)) => (
m.has(d) ? m.get(d).push(o) : m.set(d, [o]), m
),
new Map()
)
),
getSlot = (time) =>
slots
.find(({ slot }) => time > slot.slice(0, 2) && time < slot.slice(6, 8))
.slot,
grpSlot = grpDate.map(([k, v]) =>
[k, Object.fromEntries(v.reduce(
(m, o, _i, _arr, slot = getSlot(o.created_on.slice(11, 13))) => (
m.has(slot) ? m.get(slot).push(o) : m.set(slot, [o]), m
),
new Map()
))]
);
console.log(Object.fromEntries(grpSlot));
我试图用Vuejs 2实现自定义选择组件。如文档中所述,我不应该直接修改值属性,并建议使用事件将选定的数据传递给父组件。当选项值是一个对象时,我遇到了问题,却得到了[Object object]。 这是我的选择组件模板: 这是脚本部分: 这是父组件 选项: 我期待 但得到了[Object object] 我错过了什么吗?
是否可以在OpenAPI中为组件对象指定自定义名称? 我目前有两个组件对象指定请求模式: 在endpoint描述中,我将这些模式引用如下: 当我发布yaml文件时,UI在选择选项卡中显示Request est1和Request est2,其中包含名称“Request est1”和“Request est2”。是否可以为它们分配自定义名称,以便UI显示自定义名称?例如“自定义名称请求1”和“自定义名
有人知道一种方法(如果可能的话也可以使用lodash)通过对象键对对象数组进行分组,然后根据分组创建新的对象数组吗?例如,我有一个汽车对象数组: 我想制作一个由分组的新汽车对象数组:
我在创建包含自定义对象数组的数组时遇到了问题。 出于多种原因,我希望将容器创建为可比较数组的标准数组: 其中包含的每个自定义对象数组必须具有不同的长度 自定义对象数组内置了自动排序工具,这些工具不适合我希望它们适合的较大包含数组 自定义对象数组可以工作,并且已经过彻底测试。 我在创建较大对象时收到的例外情况是: 线程“main”中出现异常java.lang.ClassCastException:
问题内容: 我在解析给定的JSON数据时遇到了一个奇怪的问题。我有这个JSON结构: 如何使用Newtonsoft JSON.NET库解析此结构?我尝试使用自己的JsonConverter类: 但我有一个例外: 编辑:我也试图将其保存到字典: 但我还有一个例外: 我做错了什么?谢谢您的回答。 问题答案: 您似乎想要在JSON中将a表示为对象数组,其中每个嵌套对象都有一个来自字典的键和值。您可以使用
问题内容: 我有一个对象数组,这些对象的属性称为“ CODE”。 如何通过自定义顺序对数组进行排序,例如: 尝试各种方法均未成功。请帮忙。 问题答案: 您可以将函数与函数一起使用。