gpt4 book ai didi

javascript - 根据对象日期的年份将对象数组拆分为新数组

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:12 25 4
gpt4 key购买 nike

我有一个名为 objarray 的对象数组。每个对象看起来像这样:

var object = {
age: "45"
coords: "-37.807997 144.705784"
date: Sun Jul 28 2002 00:00:00 GMT+1000 (EST)
}

(日期是一个日期对象)

我需要根据日期将每个对象推送到一个新数组中。我希望最终结果如下所示:

var dateGroups = [[object, object, object],[object, object], [object, object, object]];

dateGroups 中的每个数组都包含具有相同日期的对象。

这可能与数组有关吗?之前我生成了一个新对象,其中包含按日期分组的所有 objarray 对象(从数据生成的日期):

var alldates = {
"1991" : [object, object, object],
"1992" : [object, object],
//etc...
}

虽然上面的解决方案在实践中看起来很奇怪,但我只需要能够按年份访问对象:即 dateGroups[0] = 第一年的对象数组

我如何将数据放入类似dateGroups 数组的内容中?有没有更好的方法来存储这种类型的数据?

最佳答案

考虑使用 Underscore.js groupBy函数,然后是 sortBy .

groupBy 将生成类似 alldates 的结构,如果您这样调用它:

var alldates = _.groupBy(objarray, function(obj) {
return obj.date.getFullYear();
});

sortBy 可用于简单地按键排序,如下所示:

var dateGroups = _.sortBy(alldates, function(v, k) { return k; });

你也可以像这样结合两者:

var dateGroups = _.chain(objarray)
.groupBy(function(obj) { return obj.date.getFullYear(); })
.sortBy(function(v, k) { return k; })
.value();

根据您的用例,我可以看到使用数组数组或数组对象映射的原因。如果您正在查找索引,请务必使用后者。

关于javascript - 根据对象日期的年份将对象数组拆分为新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9271710/

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