簡體   English   中英

為什么字符串不能在循環中連接?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM