Javascript 用于删除常用项的ES6阵列筛选器
我试图删除两个数组中常见的Javascript 用于删除常用项的ES6阵列筛选器,javascript,arrays,ecmascript-6,array-filter,array-map,Javascript,Arrays,Ecmascript 6,Array Filter,Array Map,我试图删除两个数组中常见的slot\u id,并构建一个没有重复的slot\u id的对象数组 尝试了以下操作,但其结果是另一个数组中的输出数组,即输出[数组(0),数组(2)]。我期待一个输出数组,如下所示 预期结果: [{ "_id": "5b55c44038a7701a93fb1a68", "end_time": { "hours": "01" }, "start_time": { "hours": "00" } }, { "_id": "5b55c
slot\u id
,并构建一个没有重复的slot\u id
的对象数组
尝试了以下操作,但其结果是另一个数组中的输出数组,即输出[数组(0),数组(2)]
。我期待一个输出数组,如下所示
预期结果:
[{
"_id": "5b55c44038a7701a93fb1a68",
"end_time": {
"hours": "01"
},
"start_time": {
"hours": "00"
}
}, {
"_id": "5b55c44038a7701a93fb1a67",
"end_time": {
"hours": "03"
},
"start_time": {
"hours": "01"
}
}]
输入数组
Slots = [{
"_id": "5b55c43532996fec4f500aa5",
"time_slots": [{
"_id": "5b55c43538a7701a93fb1a58",
"end_time": {
"hours": "01"
},
"start_time": {
"hours": "00"
}
}, {
"_id": "5b55c43538a7701a93fb1a57",
"end_time": {
"hours": "03"
},
"start_time": {
"hours": "01"
}
}]
}, {
"_id": "5b55c44032996fec4f500abf",
"time_slots": [{
"_id": "5b55c44038a7701a93fb1a68",
"end_time": {
"hours": "01"
},
"start_time": {
"hours": "00"
}
}, {
"_id": "5b55c44038a7701a93fb1a67",
"end_time": {
"hours": "03"
},
"start_time": {
"hours": "01"
}
}]
}]
filterData = [{
"slot_id": "5b55c43538a7701a93fb1a57",
"user_id": "5b4dbbf9788bbb4fd01cea33"
}, {
"slot_id": "5b55c43538a7701a93fb1a58",
"user_id": "5b4dbbf9788bbb4fd01cea33"
}]
let result = Slots.map(m => m.time_slots.filter(e => !filterData.find(a => e._id == a.slot_id)));
使用concat数组
“时间”方面的时隙:“{”方面的意思是:“““{”方面的意思是::“““{”方面的意思是:“{”方面的意思是:“{”的意思是:5B55C455C4353838A7701A701A701A701A701A79A79A79A797777777777A7766666666F4F4F555555FF55555555F444444FFF4FF555555A7777777777777710101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010时间:{“小时”:“01”},“开始时间”:{“小时”:“00”},{“id”:“5b55c44038a7701a93fb1a67”,“结束时间”:{“小时”:“03”},“开始时间”:{“小时”:“01”}];
const filterData=[{“slot_id”:“5b55c43538a7701a93fb1a57”,“user_id”:“5B4DBF9788BBB4FD01CEA33”},{“slot_id”:“5b55c43538a7701a93fb1a58”,“user_id”:“5B4DBF9788BBB4FD01CEA33”};
const result=Slots.map(m=>m.time\u Slots.filter(e=>!filterData.find(a=>e.。\u id==a.slot\u id))).reduce((累加器,currentValue)=>acculator.concat(currentValue));
document.write(''+JSON.stringify(result,null,'\t')+'')是否要获取所有唯一插槽?是否可能重复检查上述问题的第一个答案