首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将逻辑部分从映射函数中提取到其他自创建函数中。将map()逻辑保持为单独的部分

如何将逻辑部分从映射函数中提取到其他自创建函数中。将map()逻辑保持为单独的部分
EN

Stack Overflow用户
提问于 2022-03-03 06:48:58
回答 1查看 17关注 0票数 0

在这个过程中,我必须将逻辑从map()中分离出来,并将其放入一个函数中,然后调用它

代码语言:javascript
复制
<tbody>
      {studentDatas.map((data) => {
        if (
          data.hindi < 35 ||
          data.english < 35 ||
          data.math < 35 ||
          data.science < 35
        ) {
          return (
            <tr key={data.id}>
              <td>{data.id}</td>
              <td>{data.name}</td>
              <td>{data.hindi}</td>
              <td>{data.english}</td>
              <td>{data.math}</td>
              <td>{data.science}</td>
              <td>Need to study more</td>
              <td>Fail</td>
            </tr>
          );
        }
        if (data.hindi + data.english + data.math + data.science < 250) {
          return (
            <tr key={data.id}>
              <td>{data.id}</td>
              <td>{data.name}</td>
              <td>{data.hindi}</td>
              <td>{data.english}</td>
              <td>{data.math}</td>
              <td>{data.science}</td>
              <td>Need to work hard</td>
              <td>Pass</td>
            </tr>
          );
        }
        if (data.hindi + data.english + data.math + data.science < 300) {
          return (
            <tr key={data.id}>
              <td>{data.id}</td>
              <td>{data.name}</td>
              <td>{data.hindi}</td>
              <td>{data.english}</td>
              <td>{data.math}</td>
              <td>{data.science}</td>
              <td>Good</td>
              <td>Pass</td>
            </tr>
          );
        }
        if (data.hindi + data.english + data.math + data.science <= 400) {
          return (
            <tr key={data.id}>
              <td>{data.id}</td>
              <td>{data.name}</td>
              <td>{data.hindi}</td>
              <td>{data.english}</td>
              <td>{data.math}</td>
              <td>{data.science}</td>
              <td>Excellent</td>
              <td>Pass</td>
            </tr>
          );
        }
      })}
    </tbody>

导出studentDatas ={ id: 1,名称:"Student1",印地语: 10,英语: 10,数学: 20,科学: 25,},{ id: 2,名称:"Student2",印地语: 40,英语: 80,数学: 0,},{ id: 3,名称:"Student3",印地语: 70,英语: 80,数学: 80,科学: 90,},{ id: 4,名称:"Student4",印地语: 20,英语: 45,数学: 50,科学: 70,},{ id: 5,名称:"Student5",印地语: 40,英语: 50,数学: 70,科学: 90,},{ id: 6,名称:"Student6",印地语: 28,英语: 70,数学: 80,科学: 10,},{ id: 7,名称:Student7,印地语: 16,英语: 50,数学: 50,科学: 10,},{ id: 8,名字:"Student8",英语: 78,英语: 50,数学: 50,科学: 50,},{ id: 9,名称:"Student9",印地语: 100,英语: 100,数学: 100,科学: 100,};

EN

回答 1

Stack Overflow用户

发布于 2022-03-03 07:06:45

尝尝这个

代码语言:javascript
复制
   const getTotalMarks = (data) => {
    return data.hindi + data.english + data.math + data.science;
  }

在地图循环中

代码语言:javascript
复制
<tbody>
    {studentDatas.map((data) => {
      const isFail = data.hindi < 35 || data.english < 35 || data.math < 35 || data.science < 35;
      const total = !isFail && getTotalMarks(data);
      return (
        <tr key={data.id}>
          <td>{data.id}</td>
          <td>{data.name}</td>
          <td>{data.hindi}</td>
          <td>{data.english}</td>
          <td>{data.math}</td>
          <td>{data.science}</td>
          {
            isFail ?
              <>
                <td>Need to study more</td>
                <td>Fail</td>
              </>
              : <>
                {
                  total < 250 ? <td>Need to study more</td>
                    : total < 300 ? <td>Good</td> : <td>Excellent</td>
                }
                <td>Fail</td>
              </>
          }
        </tr>
      );
    })}
  </tbody>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71333102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档