我有這個for回圈,我試圖underlineArr用一個字符替換一個索引,每當我嘗試重新定義它時,它會保存當前變數,以便我能夠訪問它并稍后更改它,沒有任何內容被保存,它在我嘗試獲取新編輯的陣列時繼續使用默認陣列。
對于回圈:
const content = collected.content.toLowerCase();
for (let i = 0; i < underlineArr.length; i ) {
msg = underlineArr[i] = word[i] == content && underlineArr[i] == "_" ? content : "_";
}
msg = underlineArr.join(" ");
console.log(msg);
這是underlineArr常數:https ://i.stack.imgur.com/vtzj2.png
這是word常數:"French Toast",請注意常數是我創建的陣列中的亂數。
最后,collected.content只是回傳一個字串。
輸出:輸出
預期輸出:
_ r _ _ _ _ _ _ _ _ _ _
_ r e _ _ _ _ _ _ _ _ _
_ r e n _ _ _ _ _ _ _ _
_ r e n c _ _ _ _ _ _ _
.....
uj5u.com熱心網友回復:
嘗試獲取content字符索引而不是分配整個字串。
for (let i = 0; i < underlineArr.length; i ) {
underlineArr[i] = word[i] == content && underlineArr[i] == "_" ? content[i] : "_";
}
uj5u.com熱心網友回復:
這個怎么樣......我對那個不清楚的問題是冷還是熱?
let word = "French Toast".split("")
let underlineArr = Array(word.length).fill("_")
let result = []
word.forEach((char,i) => {
let row = [...underlineArr]
row[i] = word[i]
result.push(row)
})
multiline = result.map(subarr => subarr.join(" ")).join("\n")
console.log(multiline)
uj5u.com熱心網友回復:
我不確定我做了什么,但我很確定我以前的代碼不會保存任何東西,因為它會用_and 替換保存的值來解決這個問題,
for (let i = 0; i < underlineArr.length; i ) {
if (content !== word.toLowerCase()[i]) continue;
underlineArr[i] = word.toLowerCase()[i];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/445686.html
標籤:javascript for循环 不和谐
