我正在嘗試用下劃線替換從單詞中得到的字母,但是如果該單詞中有任何空格,我不想替換它。我不知道該怎么做。我正在使用的當前代碼是這個 answerArray = [] function randomWord() {
for (let i = 0; i < word.length; i ) {
answerArray[i] = "_"
answer.innerHTML = answerArray.join(" ")
}
}
我試圖用我的問題在stackoverflow中環顧四周,但沒有人知道。有人建議這個
word.replace(/\w/gi, '_')
但它沒有按我的意愿作業。
您可以在此處查看代碼https://codepen.io/NoNameYet04/pen/OJxKYeV 我有測驗將“編程語言”中的單詞更改為“測驗測驗”,以便您可以測驗它
uj5u.com熱心網友回復:
function randomWord() {
for (let i = 0; i < word.length; i ) {
answerArray[i] = word[i] == " " ? " " : "_"; // <==
console.log(answerArray[i]);
answer.innerHTML = answerArray.join(" ")
}
}
說明:您正在迭代的當前字符是單詞中的空格嗎?如果是,我們插入一個空格(在這種情況下是一個 HTML 空間),如果不是,我們只插入一個下劃線。
另外,不要忘記改變變數的賦值remainingLetters在你的category()功能,使你忽略的空間。
function category(type) {
/* ... */
remainingLetters = word.replace(/ /g, "").length;
/* ... */
}
uj5u.com熱心網友回復:
使用這樣的 if 陳述句檢查它是否是空格:
if (word[i] !== ' '){
answerArray[i] = '_';
}
else {
answerArray[i] = ' ';
}
uj5u.com熱心網友回復:
我在下面做了一個簡單的例子。對于這樣的問題,最好嘗試將其分解為小的邏輯步驟。
遍歷每個字符
如果它是一個空間,然后離開它
如果不是,則替換為 _
function randomWord(word) { let ret = ""; // return string for (let i = 0; i < word.length; i ) { // go through each character if(word[i] !== " "){ // if it's not a space then replace it ret = "_"; } else if (word[i] === " "){ // if it's a space then we add to the return string ret = " "; } } return ret; //return or answer.innerHTML = ret;}
呼叫使用:randomWord("hello there");
uj5u.com熱心網友回復:
也許通過split字串到陣列和replace單詞來嘗試這個,最后join回傳。
的輸出programming language將是___________ ________
如果要觸發每個字符之間的空格,請使用replace(/\w/g, '_ ')而不是replace(/\w/g, '_')
let word = 'programming language'
let answerArray = []
let newword = word.split(' ').forEach(i => {
answerArray.push(i.replace(/\w/g, '_ '))
})
// answer.innerHTML = answerArray.join(" ")
console.log(answerArray.join(" "))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/420781.html
標籤:
