【发布时间】:2021-07-02 02:32:15
【问题描述】:
我定义了一个数组,看起来像
const [weekDays, setWeekDays] = useState({
a: [
{ id: 1, weekDay: 'MONDAY', isChecked: false },
{ id: 2, weekDay: 'TUESDAY', isChecked: false },
{ id: 3, weekDay: 'WEDNESDAY', isChecked: false },
{ id: 4, weekDay: 'THURSDAY', isChecked: false },
{ id: 5, weekDay: 'FRIDAY', isChecked: false },
{ id: 6, weekDay: 'SATURDAY', isChecked: false },
{ id: 7, weekDay: 'SUNDAY', isChecked: false },
]
});
另一个看起来像的数组
const [array, setArray] = useState([{"id":2,"messageId":1,"weekDay":"Tuesday"}])
现在我想比较数组并将一个数组字段的 isChecked 值设置为 true,如果工作日存在于另一个数组中。所以我想要类似的东西:
weekDays.a.map(weekDay => {
array.map(row => {
if (row.weekDay === weekDay.weekDay) {
setWeekDays([weekDay.isChecked = true])}
})
})
但我收到错误无法读取未定义 weekDays.a.map 的属性映射
setter如何正确完成?
【问题讨论】:
-
Ps.: weekDays 数组中的 String 值也是同样的写法。所以“星期二”而不是“星期二”。对不起。所以这不是问题。
标签: arrays reactjs react-hooks set field