gpt4 book ai didi

javascript - 给我数组中具有相同日期的所有元素,JS

转载 作者:行者123 更新时间:2023-12-02 14:18:24 25 4
gpt4 key购买 nike

因此请考虑以下数据:

{  
post_views:[
{
id:1,
post_id:5,
ip_address:"xxx",
created_at:"2016-08-08T22:22:45+0000",
updated_at:"2016-08-08T22:22:45+0000"
},
{
id:2,
post_id:5,
ip_address:"yyy",
created_at:"2016-08-08T22:23:00+0000",
updated_at:"2016-08-08T22:23:00+0000"
},
...
]
}

如何获得所有匹配的元素:2016-08-08 ??

你尝试过什么?

Lodashes,过滤器:

  let datesThatMatch = filter(this.state.data.post_views, (views) => {
return moment(views.created_at).format('MMMM Do YYYY') === moment(views.created_at).format('MMMM Do YYYY')
});

console.log(datesThatMatch);

我不在乎它们是在一天中的什么时间创建的,只要它们在比赛时创建即可。

帮忙?

更新

我刚刚意识到我也搞错了,因为虽然我只向您展示了一部分数据,但数组中有数百个这些对象(如果不是数千个),目标是说,好吧,有2016-08-08 有 16 个匹配项,x 日期有 50 个匹配项,y 日期有 14 个匹配项,这增加了此过滤器的复杂性。

最佳答案

根据您的更新,我认为 groupBy 是更好的选择:

var data = {  
post_views:[
{
id:1,
post_id:5,
ip_address:"xxx",
created_at:"2016-08-08T22:22:45+0000",
updated_at:"2016-08-08T22:22:45+0000"
},
{
id:2,
post_id:5,
ip_address:"yyy",
created_at:"2016-08-08T22:23:00+0000",
updated_at:"2016-08-08T22:23:00+0000"
},
{
id:3,
post_id:5,
ip_address:"zzz",
created_at:"2016-08-12T20:15:00+0000",
updated_at:"2016-08-12T21:20:00+0000"
},
]
}

let groupedDatesThatMatch = _.groupBy(data.post_views, function(views) {
return moment(views.created_at).format('MMMM Do YYYY')
});

console.log(groupedDatesThatMatch);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.2/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

你从另一端得到一个数组对象

关于javascript - 给我数组中具有相同日期的所有元素,JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861610/

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