[英]Why won't the string concatenate in the loop?
if (y.length==num){
let m = y.toString();
let h = "";
let g = "";
let n = "";
for(let j=0;j<m.length;j++){
n = m.charAt(j);
if (n!=","){
g = h.concat(n);
}
}
console.log(g)
}
如果數組的長度等於整數,則我們將創建由數組組成的字符串的變量以及任意字符串h。 然后,我們使用charAt遍歷字符串m。 目的是消除字符串中的逗號,然后合並不等於逗號的字符。 但是,循環不會連接新字符串。 你們碰巧知道為什么嗎?
h
初始化為空字符串,並且永遠不會重新分配,因此
var g = h.concat(n);
將永遠有效地意味着
var g = n;
這是正在迭代的當前字符。
您可能會完全刪除g
變量,而是重新分配h
:
const num = 5; const y = ['a', 'b', ',', 'c,', 'd']; if (y.length==num){ let m = y.toString(); let h = ""; for(let j=0;j<m.length;j++){ let n = m.charAt(j); if (n!=","){ h = h.concat(n); } } console.log(h) }
一個更可讀的辦法是join
由空字符串(不調用toString
,這會增加不良逗號),然后用正則表達式來去除,
S:
const num = 5; const y = ['a', 'b', ',', 'c,', 'd']; if (y.length==num){ const cleaned = y .join('') .replace(/,/g, ''); console.log(cleaned); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.