我有一个选择类型的表单填充从以下数组:
constructor(props) {
super(props);
this.state = {
timeslots:["17:00","17:15","17:30","17:45","18:00","18:15","18:30","18:45","19:00"],
}}
如果此日期在具有相同时隙的数据库中已知,则必须过滤掉此时隙。现在他一天只取一个值。
例如,我有一个数组:
this.state.timeslotsDisabled: ["17:00","17:30"]
在那里,我想用这个函数过滤掉以下值:
handleDayClick(day) {
this.setState({
timeslots: this.state.timeslotsReset
})
for(let i = 0; i< this.state.timeslotsDisabled.length; i++){
if(new Date(this.state.timeslotsDisabled[i].date).getFullYear() == day.getFullYear() && new Date(this.state.timeslotsDisabled[i].date).getMonth() == day.getMonth() && new Date(this.state.timeslotsDisabled[i].date).getDate() == day.getDate()){
console.log('same');
console.log('GONE:'+ this.state.timeslotsDisabled[i].time)
this.setState({
timeslots: this.state.timeslots.filter((item)=> item !== this.state.timeslotsDisabled[i].time),
})
}else{
console.log('else');
}
}
this.setState({
selectedDay: day,
});
}
因此,我预计“17:00”和“17:30”将不再可见。如你所见,只有17:00不再可用。如果我有1个值,它就会工作。有人能告诉我我做错了什么吗?
timeslots.filter时隙
问题内容: 我正在尝试使用数组映射进一步过滤对象,以准备将其发送到服务器进行保存。我可以过滤为1个键值,这很不错,但是我想更进一步,将其与布尔值内部进行比较。 所以,现在这就是我所拥有的- 这对于拉出id很有用,但是如果它们的选定值== false,我不想将它们压入这个新数组中,因此我将一个条件作为进一步过滤条件。这有点奏效,我得到了一个id数组,但是具有.selected == false的id
如何过滤
我有一张地图 我想从键列表中获取值,如拥有键列表,即键名称列表。 我知道一个方法 但是,我想将此列表本身传递到流API中,而不是循环,这将过滤匹配的值和返回列表。这是可能的! !提前致谢。
问题 你想要根据布尔条件来筛选数组。 解决方案 使用 Array.filter (ECMAScript 5): array = [1..10] array.filter (x) -> x > 5 # => [6,7,8,9,10] 在 EC5 之前的实现中,可以通过添加一个筛选函数扩展 Array 的原型,该函数接受一个回调并对自身进行过滤,将回调函数返回 true 的元素收集起来。 # 扩展 A
我有多个数组映射。 我想从多个地图中获取重复地图键的列表。 例如 除了遍历所有地图键,检查集合是否包含键,如果不将键添加到集合中,我想不出任何更干净的方法。有没有办法通过streams来实现这一点?