我想通過名稱'bob'的'文本'變量來查看,並計算我找到它的次數。當將文本與名稱'bob'進行比較時,我發現自己需要使用toLowerCase,因爲b!= B。但是當循環嘗試將空格轉換爲小寫時失敗。我可以在這裏使用什麼樣的LowerCase替代方案?
我該怎麼辦?此外,我會很感激任何改進我的代碼的建議 - 我仍然是初學者。
var text = "Hey, how are you doing? My name is Bob. I like to sleep. Bob";
var myName = "bob";
var temp = [];
var lower = '';
var count = 0;
var hits = 0;
var valid = function(letter) {
if (myName[count] == undefined) {
count = 0;
}
var
let = letter.toLowerCase();
if (let === myName[count]) {
temp.push(let);
count++;
} else {
count = 0;
temp.pop(let);
return false;
}
if (myName == temp.join("")) {
hits += 1;
temp = [];
}
};
for (i = 0; i < text.length; i++) {
if (text[i] === "b") {
for (var j = i; j < (myName.length + i); j++) {
lower = text[j].toLowerCase();
if (valid(lower) == false) {
break;
}
}
}
}
if (hits == 0) {
console.log("Your name wasn't found!");
console.log(hits);
} else {
console.log(hits);
}
'let'在較新的JS,所以我不會把它作爲鑑於OP的需求變量名 – epascarello