为了账号安全,请及时绑定邮箱和手机立即绑定

在 Javascript 中比较两个值然后映射

在 Javascript 中比较两个值然后映射

蓝山帝景 2023-09-28 17:33:24
问题出在你的查询中,tbody你写的#body1所以它会查询带有 ID 的元素,body1而在你的 html 代码中,tbody是类body1而不是 idconst rows = document.querySelectorAll("#body1 > tr"); // <--- will select element with id="body1"你的 HTML 代码:   ...   </thead>    <tbody class="body1"> <!--body is using attribute class -->      <tr class="vypis-riadok">   ...你应该做的是使用类查询选择器,更改#为.const rows = document.querySelectorAll(".body1 > tr"); // <--- will select element with class="body1"之后你的 javascript 代码应该没问题,现在添加 css 样式show和hidden类.hidden{ display: none;
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您希望在映射数据之前先过滤数据,以便在分支名称匹配的位置过滤 allStaff。我在下面提供了执行此操作的代码。


allStaff.filter((staff) => staff.branch.name === contributor.branch.name)

  .map((filteredStaff) => (

    <option key={staff._id} value={staff._id}>

      {staff.name}

    </option>

));


查看完整回答
反对 回复 2023-09-28
?
FFIVE

TA贡献1797条经验 获得超6个赞

问题是您的代码试图映射布尔值... .map()是数组的内置属性,而且您的代码没有解释您要迭代的内容,因此第一步弄清楚您要首先迭代哪个数组,之后按照这个例子,


对于这个例子,我假设你想要迭代allStaff.branch


 {allStaff.branch.map(

  (branch,i) => {

    if(branch?.name === contributor.branch[i].name)

      return (<option key={branch._id} value={branch._id}>

        {branch.firstName}

      </option>)

   })}


查看完整回答
反对 回复 2023-09-28
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信