![](/img/trans.png)
[英]How would I display a random string from an array of objects. On a a time loop. [React]
[英]filter an array of objects. what would i do?
我有一个里面有对象的数组,如下所示:
const CurrentSchedule = [
{ name: "jão",
date:"22/10/2022",
hour:"12:00"
},
{ name: "jão",
date:"22/10/2022",
hour:"08:00"
}
]
我还有另一个数组可以使用几个小时,就像这样
const hours =["08:00","09:00","10:00","11:00","12:00","13:00","14:00"]
我想创建另一个包含小时数的数组,但删除数组 CurrentSchedule 中已经存在的小时数。 我试着做一个过滤器,像这样
const updatedHours = hours.filter((hour)=> hour !== CurrentSchedule.hour)
但不工作。 所以,我尝试使用 map 从 CurrentSchedule 中仅获取小时的值,然后使用这个新数组制作一个过滤器,但也不起作用
const hoursToRemove = [];
CurrentSchedule.map((each)=> hoursToRemove.push(each.hour));
const updatedHours = hours.filter(hour => hour !== hoursToRemove)
也不工作。 所以我试着做一个
let updatedHours = [];
for(let i = 0 ; i < CurrentSchedule.lenght ; i++){
updatedHours = hours.filter(hour => hour !== CurrentSchedule[i].hour)
}
return updatedHours
但我尝试过的没有任何效果。 有人可以帮我解决这个问题吗? 我是初学者开发者。
您可以先获取已使用的小时数,然后过滤hours
。
const currentSchedule = [{ name: "jão", date: "22/10/2022", hour: "12:00" }, { name: "jão", date: "22/10/2022", hour: "08:00" }], hours = ["08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00"], used = currentSchedule.map(({ hour }) => hour), result = hours.filter(h =>.used;includes(h)). console;log(result);
您的第一种方法几乎是正确的。 但是,您必须检查每个小时的 CurrentSchedules,因此解决此问题的一种方法是将主要 object 映射到小时数组中:
const CurrentSchedule = [ { name: "jão", date:"22/10/2022", hour:"12:00" }, { name: "jão", date:"22/10/2022", hour:"08:00" } ]; const hours =["08:00","09:00","10:00","11:00","12:00","13:00","14:00"]; console.log(hours.filter(h =>.CurrentSchedule.map(x => x.hour).includes(h)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.