javascript - 如何根据状态选择对哪个数组执行操作?
问题描述
我正在做一些可怕的事情来选择要映射的数组,具体取决于 shownAppointmens 的长度是否为 0。
{shownAppointments.length
? shownAppointments
.flat()
.map((appointment) => (
<AppointmentCard
appointment={appointment}
/>
))
: blockedDates
.flat()
.map((appointment) => (
<AppointmentCard
appointment={appointment}
/>
))}
我想知道是否可以简化它,选择showedAppointments 或blockedDates 并且不重复flat()
它之后的任何内容。类似的东西
(shownAppointments ? shownAppointments : blockedDates).flat()
解决方案
例子
您可以将要渲染的数组的逻辑分离到一个单独的常量中,并在该常量上使用您需要的所有链接方法。
const hasAppointments = !!shownAppointments.length;
const list = hasAppointments ? [...showAppointments] : [...blockedDates]
list
.flat()
.map((appointment) => (
<AppointmentCard
appointment={appointment}
/>
))
推荐阅读
- migration - LinkedIn V1 api 迁移到 V2 现有用户标识
- javascript - 提交数据时没有出现警告框
- salesforce - Salesforce - 从对象层次结构和 Salesforce 中的错误处理中删除多条记录的最佳方式
- c# - Get collection from settings.json
- c - c - const pointer to const data (gcc - duplicate 'const' declaration specifier)
- c# - BeginInvokeOnMainThread 未完成任务
- node.js - 在同一个端口上运行 3 个 Web 服务器
- go - 如何在不溢出的情况下将大 float64 存储在字符串中?
- php - 带有 ACF 的 Woocommerce 电子邮件通知主题的其他占位符
- angular - 如何防止在 Angular html 中显示多个错误消息?