Javascript 使用reduceRight返回条件周天数

Javascript 使用reduceRight返回条件周天数,javascript,arrays,mongodb,lodash,Javascript,Arrays,Mongodb,Lodash,我正试图从我的mongodb获取特定的星期(如星期六)收集。下面是DB集合的示例 var array2 = [ { "_id": "1", "start": "2016-08-23T16:00:00.000Z", }, { "_id": "2", "start": "2016-08-26T21:00:00.000Z", }, { "_id": "3", "start": "2016-08-23T16:10:00.000Z", }]; 为了得到星期六的入场券,我运行了一张地图,下面是代码 ar

我正试图从我的mongodb获取特定的星期(如星期六)收集。下面是DB集合的示例

var array2 = [
{
"_id": "1",
"start": "2016-08-23T16:00:00.000Z",
},
{
"_id": "2",
"start": "2016-08-26T21:00:00.000Z",
},
{
"_id": "3",
"start": "2016-08-23T16:10:00.000Z",
}];
为了得到星期六的入场券,我运行了一张地图,下面是代码

array2.map(function(object){ 
 var newObject = {};
 var nedatee = new Date(object.start);
 var weekday = nedatee.getDay();
 if (weekday===6) {
     newObject['start'] = true;
 }
 return newObject;
});
输出是

[{},{'start':true},{}]

我不想让空对象出现在我的数组中,我也不想手动删除它,有什么聪明的方法吗?我怎样才能充分利用reduceRight? 我只想

[{'start':true}]


如果您需要参考

您考虑过使用javascript吗?您的代码将是

var hasSaturdays = array2.some(function isSaturday(object){ 
 var nedatee = new Date(object.start);
 return nedatee.getDay() === 6;
});
如果hasSaturdays为true,则可以返回
[{'start':true}]


请注意,只有IE 9+

您考虑过使用javascript吗?您的代码将是

var hasSaturdays = array2.some(function isSaturday(object){ 
 var nedatee = new Date(object.start);
 return nedatee.getDay() === 6;
});
如果hasSaturdays为true,则可以返回
[{'start':true}]

请注意,只有IE 9+

您才能使用reduceRight并拼接故障:

var array2=[
{
“_id”:“1”,
“开始”:“2016-08-23T16:00:00.000Z”,
},
{
“_id”:“2”,
“开始”:“2016-08-26T21:00:00.000Z”,
},
{
“_id”:“3”,
“开始”:“2016-08-23T16:10:00.000Z”,
}];
阵列2.减速器右侧(功能(acc、v、i){
if(新日期(v.start).getUTCDay()!=6){
阵列2.拼接(i,1);
}
},空)
控制台日志(array2)您可以使用reduceRight并拼接故障:

var array2=[
{
“_id”:“1”,
“开始”:“2016-08-23T16:00:00.000Z”,
},
{
“_id”:“2”,
“start”:“2016-08-26T21:00:00.000Z”,
},
{
“_id”:“3”,
“开始”:“2016-08-23T16:10:00.000Z”,
}];
阵列2.减速器右侧(功能(acc、v、i){
if(新日期(v.start).getUTCDay()!=6){
阵列2.拼接(i,1);
}
},空)

控制台日志(array2)是否使用UTC时区这是一个简单的筛选工作,并且只有
Array.prototype.filter()
用于此工作

var array2=[
{
“_id”:“1”,
“开始”:“2016-08-23T16:00:00.000Z”,
},
{
“_id”:“2”,
“开始”:“2016-08-26T21:00:00.000Z”,
},
{
“_id”:“3”,
“开始”:“2016-08-23T16:10:00.000Z”,
}],
saturdays=array2.filter(日期=>(新日期(日期.开始)).getDay()==6)
.map(日期=>({start:true}));

控制台日志(星期六)是否使用UTC时区这是一个简单的筛选工作,并且只有
Array.prototype.filter()
用于此工作

var array2=[
{
“_id”:“1”,
“开始”:“2016-08-23T16:00:00.000Z”,
},
{
“_id”:“2”,
“开始”:“2016-08-26T21:00:00.000Z”,
},
{
“_id”:“3”,
“开始”:“2016-08-23T16:10:00.000Z”,
}],
saturdays=array2.filter(日期=>(新日期(日期.开始)).getDay()==6)
.map(日期=>({start:true}));

控制台日志(星期六)
您是否尝试在db itselfUse上使用
mapReduce
,它基于回调函数返回true的元素创建一个新数组。或者,如果您想修改数组本身,请使用并拼接故障。您是否尝试在db itselfUse上使用
mapReduce
,这将基于回调函数返回true的元素创建新数组,这可能是重复的。或者,如果您想修改阵列本身,请使用并拼接故障。注意,这可能会重复将日期解析为UTC,但将比较作为本地,因此在不同的时区会给出不同的结果。请注意,这会将日期解析为UTC,但将比较作为本地,因此,它将在不同的时区产生不同的结果。