为什么字符串不能在循环中连接?

时间:2019-01-05 07:54:07

标签: javascript

 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。目的是消除字符串中的逗号,然后合并不等于逗号的字符。 但是,循环不会连接新字符串。 你们碰巧知道为什么吗?

1 个答案:

答案 0 :(得分:2)

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,这会添加不希望的逗号),然后使用正则表达式删除{{1 }}:

,