我有一個回圈遍歷陣列的 foreach 回圈,然后我運行一個回呼函式,將陣列中每個專案的值作為函式的引數,該函式在陣列中的每個專案之前運行一次。在回呼函式中,我試圖將傳遞的值與字串進行比較,但我總是得到一個 false 沒有記錄到控制臺
這是我的代碼
window.addEventListener('load', function() {
let occupation = ["urologist", "urologist", "staff", "nurse", "surgeon"]
occupation.forEach(function(occ) {
let ab = occ.textContent
let bc = ab.toLowerCase();
chkfun(bc)
})
function chkfun(val) {
if (val == "urologist") {
console.log("urologist")
}
if (val == "surgeon") {
console.log("surgeon")
}
if (val == "staff") {
console.log("staff")
}
if (val == "nurse") {
console.log("nurse")
}
}
}, false);
uj5u.com熱心網友回復:
你的問題出在線路上let ab = occ.textContent。occ已經包含文本內容。你可以做bc = occ.toLowerCase()
也看看JavaScript Switch而不是做一堆if's
uj5u.com熱心網友回復:
您可以在 forEach 中呼叫您的函式,它將與每個元素一起呼叫,在那里您可以將您的值轉換為小寫并進行比較,也可以使用 else if 這樣腳本不會測驗每個值并在匹配時立即停止. 您還可以else在末尾添加未知元素
window.addEventListener('load', function() {
let occupation = ["Urologist", "urologist", "staff", "nurse", "surgeon","a"];
occupation.forEach(chkfun);
function chkfun(v) {
let val = v.toLowerCase();
if (val == "urologist") {
console.log("urologist")
} else if (val == "surgeon") {
console.log("surgeon")
} else if (val == "staff") {
console.log("staff")
} else if (val == "nurse") {
console.log("nurse")
} else {
console.log("element not found");
}
}
}, false);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/338847.html
標籤:javascript 功能 foreach 打回来
