如果相应的 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>
当你这样做时:
// Get List of Bookable Companies.
let bookableCompanies =
"0011U00002LNeJ9QAL, 0011U00002BkHdaQAF, a1FKi000000PBG8MAO, 0011U00002GhNOXQA3";
var companiesArray = bookableCompanies.split(",");
您将得到以下数组:
["0011U00002LNeJ9QAL", " 0011U00002BkHdaQAF", " a1FKi000000PBG8MAO", " 0011U00002GhNOXQA3"]
注意除第一个元素之外的所有元素中的前导空格。这可以防止
companiesArray.includes(company2Id)
条件通过。
相反,可以重新格式化字符串以不包含空格,将分割更改为
bookableCompanies.split(", ")
,或者从数组的每个元素中去除空格。