使用JavaScript如何同时调用两个函数?如果 Id 位于变量内,我需要调用这些函数

问题描述 投票:0回答:1

如果相应的 id 在可预订公司变量中,我尝试调用两个函数“company1Qualified()”和“company2Qualified()”。我的问题是我无法根据我的情况同时调用这两个函数。目前只有一个函数会被调用。 bookableCompanies 中的第一个 id 将始终被调用,但无法调用这两个函数。是什么原因造成的?当 id 位于 bookableCompaines 中时,如何才能调用这两个函数?

我在下面创建了一个测试环境来运行此代码。

    <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Test setQualified</title>
  </head>
  <body>
    <h1>Test setQualified</h1>

    <button onclick="setQualified()">setQualified</button>
  </body>

  <script>
    function company1Qualified() {
      console.log("Call company1Qualified");
    }

    function company2Qualified() {
      console.log("Call company2Qualified");
    }

    function setQualified() {
      const company1Id = "0011U00002LNeJ9QAL";
      const company2Id = "0011U00002BkHdaQAF";
      let iscompany1Q = "";
      let iscompany2Q = "";
      // let iscompany1Q = company1Qualified();
      // let iscompany2Q = company2Qualified();

      // Get List of Bookable Companies.
      let bookableCompanies =
        "0011U00002LNeJ9QAL, 0011U00002BkHdaQAF, a1FKi000000PBG8MAO, 0011U00002GhNOXQA3";
      var companiesArray = bookableCompanies.split(",");

      // Check if company1Id and company2Id are in bookableCompanies
      if (
        companiesArray.includes(company1Id) &&
        companiesArray.includes(company2Id)
      ) {
        iscompany1Q = company1Qualified();
        iscompany2Q = company2Qualified();
      } else if (companiesArray.includes(company2Id)) {
        iscompany2Q = company2Qualified();
      } else if (companiesArray.includes(company1Id)) {
        iscompany1Q = company1Qualified();
      }

      const qualifiedCompanyValue =
        iscompany2Q && iscompany1Q
          ? `${company1Id}, ${company2Id}`
          : iscompany2Q
          ? company2Id
          : iscompany1Q
          ? company1Id
          : "";

      console.log("Qualified Companies:", qualifiedCompanyValue);
    }
  </script>
</html>
javascript
1个回答
0
投票

当你这样做时:

      // Get List of Bookable Companies.
  let bookableCompanies =
    "0011U00002LNeJ9QAL, 0011U00002BkHdaQAF, a1FKi000000PBG8MAO, 0011U00002GhNOXQA3";
  var companiesArray = bookableCompanies.split(",");

您将得到以下数组:

["0011U00002LNeJ9QAL", " 0011U00002BkHdaQAF", " a1FKi000000PBG8MAO", " 0011U00002GhNOXQA3"]

注意除第一个元素之外的所有元素中的前导空格。这可以防止

companiesArray.includes(company2Id)
条件通过。

相反,可以重新格式化字符串以不包含空格,将分割更改为

bookableCompanies.split(", ")
,或者从数组的每个元素中去除空格。

© www.soinside.com 2019 - 2024. All rights reserved.