【发布时间】:2021-03-16 12:45:26
【问题描述】:
我有一个映射到表内的数组,我想检查对象属性“userName”是否与标题相同,以便我知道该值的放置位置,否则应显示为“0”。
下面是映射完成后的表格:
{report.data.map(obj => (
<React.Fragment>
<TableCell>{obj.userName === users[0] ? obj.workedHours : "0"}</TableCell>
<TableCell>{obj.userName === users[1] ? obj.workedHours : "0"}</TableCell>
<TableCell>{obj.userName === users[2] ? obj.workedHours : "0"}</TableCell>
</React.Fragment>
))}
在映射函数中,users 就是用户喜欢的数组
users = ["User 1", "User 2", "User 3"]
而report.data 是每个项目的对象数组:
[{userName: "User 1", rate: 5, clientName: "client A", workedHours: 8},
{userName: "User 2", rate: 3, clientName: "client B", workedHours: 5}]
表格的结束方式如下:
你能帮我在它存在的地方显示每个用户的价值,否则显示“0”吗?
感谢您的宝贵时间
【问题讨论】:
-
你的
report.data是什么样的? -
编辑了帖子以显示
report.data的样子。谢谢提醒 -
你看到大小写的不同了吗? "User 1" === "user 1" 将始终为 false,因为大写的 "U"。
-
我想你只需要
obj.userName.toLowerCase() === users[0].toLowerCase() -
@BjørnNyborg 从这个角度来看,真实数据还可以,这里只是举例,但谢谢,我更正了
标签: javascript arrays reactjs material-ui